加入收藏 | 设为首页 | 会员中心 | 我要投稿 孝感站长网 (https://www.0712zz.com.cn/)- 运营、云管理、管理运维、云计算、大数据!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

Windows 10X下月RTM 微软设立严苛使用条件

发布时间:2021-02-04 16:19:56 所属栏目:传媒 来源:互联网
导读:这就说明 MySQL 单表的最大尺寸不能超过 2TB,我们简单来算一下,假设一个表的平均行长度为32KB(InnoDB最大行长度限制65536字节,64KB),那么他最大能存储多少行数据?4 x 1024 x 1024 x 1024 / 32 = 134217728大约 1.4 亿不到。 对于饿了么,美团那外卖种交

这就说明 MySQL 单表的最大尺寸不能超过 2TB,我们简单来算一下,假设一个表的平均行长度为32KB(InnoDB最大行长度限制65536字节,64KB),那么他最大能存储多少行数据?4 x 1024 x 1024 x 1024 / 32 = 134217728大约 1.4 亿不到。

对于饿了么,美团那外卖种交易系统的订单表 1.4 亿是很容易达到的,一天平均 2000W 订单,一周就到 1.4 亿了,没法玩了,一般都会采用异地多活的方案,根据用户的位置将数据写到相应的 IDC 数据中心,这其实也是一种高大上的分表方案,不在我们今天讨论范围啦。

分表方案

分表的应用场景是单表数据量增长速度过快,影响了业务接口的响应时间,但是 MySQL 实例的负载并不高,这时候只需要分表,不需要分库(拆分实例)。

我们知道,一个表大小是满足如下公式的:TABLE_SIZE = AVG_ROW_SIZE x ROWS,从这里可以知道表太大,要么是平均行长度太大,也就说表的字段太多,要么是表的记录数太多。这就产生两种不同的分表方案,即切分字段(垂直分表)和切分记录(水平分表) 。

垂直分表

还是以订单表 orders 为例,按照字段进行拆分,这里面需要考虑一个问题,如何拆分字段才能表上的DML性能最大化,常规的方案是冷热分离(将使用频率高字段放到一张表里,剩下使用频繁低的字段放到另一张表里)。
 

我们都知道,随着业务量的增长,数据量也会随之增加,这个时候就需要关注业务大表,因为大表会影响查询性能,DDL变更时间很长,影响业务的可用性,同时导致从库延迟很大,如果业务做了读写分离,导致用户重复操作产生脏数据,例如重复下单。

今天就跟大家讨论下那些年MySQL使用过的分表分库的方案,分表分库后的问题以及解决方案,希望对您有新的收获哦。

MySQL表大小限制

MySQL一般安装部署在Linux操作系统上(例如CentOS 7.4),默认都是InnoDB存储引擎,且开启了独立表空间选项(参数innodb_file_per_table=1),此时创建一个表 orders 就会自动生成一个数据文件 orders.ibd,文件大小是受操作系统 Block 大小限制的,下面是 ext3 文件系统块大小和最大尺寸的对应关系。
 

场景3:两个毫无相关的类出现重复代码

如果两个没有直接关联的类出现重复代码,可以考虑将重复的代码抽象到一个独立的普通类或者工具类中,适用方可以使用组合的方式调用。

代码样例这里不再赘述,与场景1和2大同小异,相信聪明的你一定能明白。

坏味道:Long Parameter List(过长参数列)

全局变量是个邪恶的东西,数据是共享的并且每个线程都可以修改,太多了容易导致程序不可控,所以大家喜欢将变量以行参的方式传递,久而久之参数列越来越长了。

为什么过长参数列是一种坏味道?

方法参数的数量太多会导致代码可读性非常差,如果有多个重载方法它们的方法参数都非常多,在写代码时很难判断该调用哪一个。

当一个方法需要新增功能,每次都可能会新增一个方法参数,这样导致调用方每次都要重新适配,小心被打哦,耗子尾汁。

如何解决过长参数列这种坏味道?

可以将多个参数封装到一个 DTO 对象中,方法间的对象通过对象的传输而不是过长的参数。

数据传输对象(DTO)(Data Transfer Object),是一种设计模式之间传输数据的软件应用系统。

特别需要提醒的是有些情况下长参数也是合理的,因为使用参数可以避免某些依赖关系的产生。在编码实践中我们可以通过观察长参数的方法,如果这个方法经常变动那你就要考虑重构这个方法了。基本原则:事不过三,过三重构。

坏味道:Shotgun Surgery(散弹式修改)

为什么散弹式修改是一种代码坏味道?

如果需要修改某个小功能,你需要在众多不同的类中做修改,首先很难找全,其次很可能会遗漏,这种问题一般称之为散弹式修改。

(编辑:孝感站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读