原因:规则的变化和数据迁移
扩展分库时不需要进行规则变化和数据迁移的分库方式:
- 将分库规则改为按断分库,一个库满了新增另一个
![](https://img.haomeiwen.com/i2083001/aa50972f1f28d8ce.png)
基于id的范围分库、基于时间分库
缺点:insert/update指令只集中于一张表,无法分摊性能压力
-
水平扩展模式
2.1
当只有一个库时,设立多个分表,使用id取模方式分表,当单库容量达到上限,创建新库整表迁移,不需要改变表结构。
缺点:单表数据量一直在增长,可能带来性能问题;当预留表的个数用尽,还是要进行规则变化和数据迁移。
![](https://img.haomeiwen.com/i2083001/2d671a0265c64e5e.png)
为了解决上述问题,还是采用整表迁移模式,当1-1和0-1满了之后,再迁移到另外两个新库。既解决了热点数据库问题,有解决了单表数据量过大的问题。
缺点:倍数扩容开销很大。
![](https://img.haomeiwen.com/i2083001/d278bc44f397e5e6.png)
将表容量达快饱和时,将快饱和的表放到一个新的数据库存放历史数据表,将历史表移走的数据库创建新表。解决热点数据库问题。
缺点:分库分表的规则提高复杂度。
网友评论