分布式事务及CAP和BASE理论

💡 原文中文,约1400字,阅读约需4分钟。
📝

内容提要

当前数据库的默认事务隔离级别(如MySQL、Oracle、PostgreSQL)常常无法满足隔离性要求,READ-COMMITTED级别无法解决脏读、不可重复读和幻读问题。数据库事务特性包括原子性、一致性、隔离性和持久性(ACID)。不同隔离级别影响性能,隔离级别越高,性能越低。主要隔离级别有:读未提交、读已提交、可重复读和序列化,其中可重复读是MySQL的默认级别,通过间隙锁防止幻读。

🎯

关键要点

  • 当前数据库的默认事务隔离级别无法满足隔离性要求,READ-COMMITTED级别无法解决脏读、不可重复读和幻读问题。

  • 数据库事务的特性包括原子性、一致性、隔离性和持久性,简称ACID。

  • 脏读是指一个事务访问到另一个事务未提交的数据,可能导致读取到不存在的数据。

  • 不可重复读是指一个事务两次读取同一条记录时,结果不一致。

  • 幻读是指一个事务两次读取时,得到的记录条数不一致。

  • SQL标准定义了四个隔离级别:读未提交、读已提交、可重复读和序列化,隔离级别与数据库性能呈反比。

  • 读未提交级别允许脏读和不可重复读,但不允许更新丢失。

  • 读已提交级别避免脏读,但允许不可重复读。

  • 可重复读级别保证同一事务内的查询结果一致,但可能出现幻读,MySQL的默认隔离级别。

  • 序列化级别要求所有事务串行执行,效率最低。

  • 隔离级别的提升会导致并发能力下降,二者呈负相关关系。

➡️

继续阅读