讨论数量:
我会用mysql 分片来做,至少逻辑上是一个表,另外按ID去分表是非常糟糕的设计,你无法合理利用索引,除了主键是ID,其他的查询方式你一点优势没有还提高了复杂,仅仅是让你的表多放了点东西,要让表多存东西方法多得是。
看起来像是单库分表
- 假设还是在这个库上继续添加分表,那我会修改一下寻表公式,原有8张表,一张容量1000w,新建8张表,表名下标递增,寻表公式调整为 table_id%8+int(id/80000000)
- 分库,新建数据库,库里创建同样的表,需要先根据id选择db,取模获取表名公式不变
- 重新规划表的数量,处理数据到新表,然后切换连接到新表
1、2 工作量小一点,但数据倾斜
3 的话要处理老数据和注意切换过程的影响
看起来像是单库分表
1、2 工作量小一点,但数据倾斜
3 的话要处理老数据和注意切换过程的影响