暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分库分表算法

干货食堂 2022-06-27
598

一、为什么要分库分表

如果一个网站业务快速发展,那这个网站流量也会增加,数据的压力也会随之而来,比如电商系统来说双十一大促对订单数据压力很大,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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论