mysql 分库分表

分库分表时机

当业务量小的时候,我们不需要去关注数据库存储的数据多少,当业务量大的时候,单个表的行数有几百万的时候,我们需要考虑分库分表。

具体步骤

  • 根据业务增常量,推算出分库的片数
  • 选出分表的关键字段作为分表key
  • 根据具体的key选择分表算法是hash还是range
  • 执行数据库双写将新的数据写入到新表和老表中
  • 进行新表老表的数据比对,然后统一读写新表。

注意事项

  • 分库分表之后,需要注意使用分布式id,也就是全局id作为主键。
  • 分页排序会跨库跨表,需要进行数据的分别查询汇总。
  • 减少联合查询可以通过反范式进行冗余字段的设计