常用的水平拆分方法为:
对 customer id 进行 hash 运算,如果要拆分成 5 个表则使用 mod(customer_id,5) 取出 0-4 个值
针对不同的 hashID 把数据存到不同的表中。
挑战:
跨分区表进行数据查询
统计及后台报表操作
表的水平拆要是为了解决单表的数据量过大的问题,水平插分的表每一个表的结构都是完成一致的。以下面的 payment 表为例

1. 水平拆分:解决数据量的问题。
行数代表了具体的数据量大小。
2. 水平拆分后,表结构相同,即表列字段相同。
方法:
对custom_id用到hash操作, 若拆成个水平表,mod(custom_id,5)取出0-4个值;
针对不同hashID把数据存到不同的表中。
前台使用拆分后的表,方便使用,后台使用汇总表,方便统计以及后天报表操作。
水平拆分表的方法
表的垂直拆分:将表中的不常用的列和大字段的列拆分到另外一个表或者多个表中,减少表的宽度;
表的水平拆分:主要是解决数据量过大的问题,水平拆分每个表的表结构都是完全一致的(当单表的数据大于一亿时,尽管加了索引,还是会比较慢);
水平拆分方法:对id进行hash运算(取模),如果拆分为5个表,则使用mod(id)取出0-4个值,针对不同的hashID吧数据存到不同的表中;
表的水平拆分:
常用的方法是:hash取模拆分
1、对大表的主键id值进行hash运算,比如要拆分为5张表,可以使用mod(主键id,5)取出0-4个值
2、针对不同的hashID把数据存到不同的表中。
挑战:
跨分区表进行数据查询
统计及后台报表操作
表的水平拆分是为了解决单表的数据量过大的问题,水平拆分的表,表的表结构都是完全一致的
表的水平拆分


表的水平拆分