(只需要增加数据库服务器,dba整库迁移,修改配置文件中的数据库地址即可)
i.一开始4个数据库服务器,每个服务器8个数据库(4*8=32)//并发4*2000=8000
ii.扩容1:8个数据库服务器,每个服务器4个数据库,dba负责整库迁移
iii.一般扩到32个服务器32个库,每个库32张表
iv. 最高1024个服务器,1024个库,每个库1张表(这个时候改变路由规则)
分库分表后主键问题
a) 基于全局的某个库色生成自增的id,(并发低)
b) uuid,太长了,性能差
c) 当前时间+业务id生成唯一Id
d) snowflake算法
i. 64位long形的id
ii. 1位+41位+5位+5位+12位
iii. 0(正数)+时间戳计算的二进制(不是真实的时间)+机房id(最多32以内)+机器id(最多32以内)+排序(从0开始排序最多4096个 )
iv. 那个机房的那个机器的那个时间发送过来的请求,如果同一毫秒有多个,后面排序累加
v. twitter的