首页 理论教育 水平分表:预估数据量,按模数分散存储

水平分表:预估数据量,按模数分散存储

时间:2023-11-03 理论教育 版权反馈
【摘要】:水平分表的几种常见策略如下:1.预先估计某个大表的数据量,按实际情况将其均分为固定数量表根据分表算法,将数据平均分散到不同的数据表中,常见处理方式有对自增ID取模、对某个字段进行HASH。比如某系统用户预计支持1亿用户数,分100个子表存储用户数据,按照自增ID的最后两位来分表,对100取模,那么用户数据表就是从user_00到user_99的子表。

水平分表:预估数据量,按模数分散存储

表的横向切片也称水平分片(Horizontal),就是对表的行进行横向分片,通过这样的方式使不同分组里面的物理列被分割的数据集得以组合,从而进行个体分割或集体分割。所有在表中定义的列在每个数据集中都能找到,所以表的特性依然得以保持。通俗地说,就是一个表里面的数据太多,把其分成几个子表来存储这些数据,每个子表的结构是一样的,但数据不同,这其实就是表分区的一个变种。

将大表水平拆分为多个子表,那么在更新或者查询数据的时候,压力会分散到不同的表上。由于分表之后每个表的数据较小,不管是查询还是更新都极大地提高了速度,即使出现最坏的“锁表”情况,那其他表还是可以并行使用。

水平分表的几种常见策略如下:

1.预先估计某个大表的数据量,按实际情况将其均分为固定数量表

根据分表算法,将数据平均分散到不同的数据表中,常见处理方式有对自增ID取模、对某个字段进行HASH。比如某系统用户预计支持1亿用户数,分100个子表存储用户数据,按照自增ID的最后两位来分表,对100取模,那么用户数据表就是从user_00到user_99的子表。

2.按时间拆分(www.xing528.com)

对于那种根据时间增长较快的数据可以按时间拆分,根据业务实际情况按天、按月、按年等进行拆分。比如进销存数据,我们可以按月分表,形如把主表拆成jxc_data_201201、jxc_data_201202、jxc_data_201203等的子表。

3.按每个表固定记录行数拆分

一般根据自增长ID拆表,每个子表存储指定数量的数据。一个子表的数据行数到了指定数量,就自动保存到新的子表里。

4.将很久之前的数据迁移到一个历史

比如日志记录,一般只会查询三个月之内的日志,对于超过三个月的日志记录可以迁移到另一个历史表中,如log_history。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈