分库分表
在进行数据库操作时,一般都会有用户ID(简称uid)字段,所以我们选择以uid进行分库分表
分库策略:二叉树分库 指的是:我们在进行数据库扩容时,都是以2的倍数进行扩容。比如:1台扩容到2台,2台扩容到4台,4台扩容到8台,以此类推。这种分库方式的好处是,我们在进行扩容时,只需DBA进行表级的数据同步,而不需要自己写脚本进行行级数据同步。
分表:(分表原则)
根据uid计算数据库编号:
数据库编号 = (uid / 10) % 8 + 1
根据uid计算表编号:
表编号 = uid % 10
1. 中间变量 = user_id % (分库数量 * 每个库的表数量)
2. 库 = 取整数 (中间变量 / 每个库的表数量)
3. 表 = 中间变量 % 每个库的表数量