10 分库分表

Wu Jun 2019-01-05 17:03:29
07 数据库 > 01 MySQL

当数据库量非常大的时候,DB 已经成为系统瓶颈时就可以考虑进行水平垂直拆分了。

1 水平拆分

将一张表中的记录拆分到多个结构相同的表中。

可以将数据分布到集群的不同节点上,从而减缓单个数据库的压力。

2 垂直拆分

将一张表的字段拆分为主表以及扩展表,使用频次较高的字段在一张表,其余的在一张表。

3 拆分策略

多表查询不建议使用 join ,建议使用两次查询。

4 分布式事务

5 最终一致性

异步检测,异步修复。

  1. 线下扫描全量数据法,最简单
  2. 线下扫描增量数据法,最效率
  3. 线上实时检测“消息对”法,最实时

6 唯一 ID