文章插图
MySQL InnoDB 存储引擎的默认支持的隔离级别是 REPEATABLE-READ(可重读) 。我们可以通过SELECT @@tx_isolation;命令来查看
mysql> SELECT @@tx_isolation;
这里需要注意的是:与 SQL 标准不同的地方在于InnoDB 存储引擎在 REPEATABLE-READ(可重读)事务隔离级别下使用的是Next-Key Lock 锁算法,因此可以避免幻读的产生,这与其他数据库系统(如 SQL Server)是不同的 。所以说InnoDB 存储引擎的默认支持的隔离级别是 REPEATABLE-READ(可重读) 已经可以完全保证事务的隔离性要求,即达到了 SQL标准的SERIALIZABLE(可串行化)隔离级别 。
因为隔离级别越低,事务请求的锁越少,所以大部分数据库系统的隔离级别都是READ-COMMITTED(读取提交内容):,但是你要知道的是InnoDB 存储引擎默认使用 REPEATABLE-READ(可重读)并不会有任何性能损失 。
InnoDB 存储引擎在 分布式事务 的情况下一般会用到SERIALIZABLE(可串行化)隔离级别 。
作者:JAVA开发者记录站
链接:https://www.jianshu.com/p/2a66b2ddc0fd
来源:简书
推荐阅读
- MySQL无锁化WAL系统那些事儿
- 阿里架构师教你处理高并发:2种方法,解决Redis和Mysql一致性
- 点头镇农技人员深入茶区指导病虫害防治工作
- 几大常用的MySQL图形化管理工具推荐!
- MySQL常见的图形化工具
- Mysql数据库连接过高,怎么快速杀掉连接
- 三明市农业局深入大田指导茶叶生产
- 十步完全理解 SQL
- InnoDB架构,一幅图秒懂
- Paxos算法为什么说是Raft,Zab协议的鼻祖,及原理解析