数据库一致性问题总结

2023-04-10
1 min read

单机和分布式都存在

1. 一份数据,多种表示——redolog和binlog

2. 一份数据,多次访问——事务一致性(幻读)

  • 提升到rr隔离级别

3. 一份数据,多行组合——跨行/跨表逻辑一致性

4. 一份数据,多人访问——锁

分布式场景一致性

5. 一份数据,多份拷贝——读写分离场景

  • 主从架构下
  • 半同步,fullsync,apply完成
  • 另一种思路:计算节点查询备库时带上需要的最小事务编号(比如gtid)

6. 一份数据,多个分片——分库分表场景

  • 问题:总体和部份数据不一致问题
  • 解法:全局一致性视图+业务进行对账 分库分表在不同机器上进行并行查询,与同一机器上不同线程进行并行查询面临的解法类似。可以通过在计算节点建立全局的一致性视图来解决。