一、为什么要分库分表
如果一个网站业务快速发展,那这个网站流量也会增加,数据的压力也会随之而来,比如电商系统来说双十一大促对订单数据压力很大,Tps十几万并发量,如果传统的架构(一主多从),主库容量肯定无法满足这么高的Tps,业务越来越大,单表数据超出了数据库支持的容量,持久化磁盘IO,传统的数据库性能瓶颈。数据库连接数不够需要分库,表的数据量大,优化后查询性能还是很低,需要分表。
二、什么是分库分表
分库:将一个库的数据拆分到多个相同的库中
分表:把一个表的数据放到多个表中
三、如何分库分表
单库的情况下。很简单。
分表,可以有id取模,时间维度等方式分表。
id取模的缺点就是,不能横向扩展,每次都得迁移数据,麻烦。
时间范围的缺点是,数据分布不均匀,比如双11期间,11月份的表比这一年的表数据量都多。
多库的情况。比如db0 和db1
每个库下面分别有 tb_0、tb_1、tb_2
比如itemId = 100 的商品 数据应该落到那个库的那个表呢?
计算公式:100 % (2*3) = 4 取模得4
分库 = 4/3 = 1
分表 = 4 % 3 = 1
这个公式非常的经典。分库分表百分百会用到。
文章转载自干货食堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




