欢迎光临
个人技术文档整理

每秒处理10万请求—数据库分库分表

分库分表

在进行数据库操作时,一般都会有用户ID(简称uid)字段,所以我们选择以uid进行分库分表

分库策略:二叉树分库 指的是:我们在进行数据库扩容时,都是以2的倍数进行扩容。比如:1台扩容到2台,2台扩容到4台,4台扩容到8台,以此类推。这种分库方式的好处是,我们在进行扩容时,只需DBA进行表级的数据同步,而不需要自己写脚本进行行级数据同步。

分表:(分表原则)

 

根据uid计算数据库编号:

数据库编号 = (uid / 10) % 8 + 1

根据uid计算表编号:

表编号 = uid % 10

 

    1. 中间变量 = user_id % (分库数量 * 每个库的表数量)
 
    2. 库 = 取整数 (中间变量 / 每个库的表数量)
 
    3. 表 = 中间变量 % 每个库的表数量

 

 

 

 

 

赞(1)