当前位置: 首页 > news >正文

MySQL的事务隔离

文章目录

  • 前言
  • 事务隔离存在的问题
      • 脏读
      • 不可重复读
      • 幻读
      • 问题严重程度
  • 事务隔离级别
      • 读未提交
      • 读已提交
      • 可重复读
      • 串行化
      • 事务隔离程度
      • 事务隔离性能
  • 最后

前言

大家好,我是醉墨居士,今天分享一下MySQL的事务隔离,在MySQL中事务之间可能存在脏读、不可重复读、幻读这三种问题,然后就延伸出来读未提交、读已提交、可重复读、串行化这四种隔离级别来解决上述问题,我接下来为你逐个击破

事务隔离存在的问题

脏读

脏读是在一个事务中读到了另外一个事务中已修改但未提交的数据

不可重复读

不可重复读表示在一个事务中执行了多次的查询某个数据的操作,在这些操作之间存在一个修改了这个数据的事务,并将事务提交了,那么这时我们事务中在这次修改操作前后的查询到的数据是不一致的

幻读

不可重复读表示在一个事务中执行了多次的查询某种数据数量的操作,在这些操作之间存在一个新增或删除这种数据的事务,并将事务提交了,那么这时我们事务中在这次修改操作前后的查询到的数据的数量是不一致的

问题严重程度

脏读 > 不可重复读 > 幻读

事务隔离级别

读未提交

在一个未提交的事务中修改的数据,能被另外其它事务查询到

  • 存在脏读、不可重复读、幻读问题

读已提交

只有在事务提交之后,该事务做出的更改才能被其它事务查询到

  • 存在不可重复读、幻读问题

可重复读

MySQL中InnoDB引擎的默认隔离级别,确保在同一个事务中,对于任意给定点读取的数据都是一致的,即使其他事务在该事务执行期间对数据进行了修改

  • 存在幻读问题

串行化

为记录加上读写锁,在多个事务对这条记录进行读写操作时,如果发生读写冲突的情况,后访问的事务需要等待前一个事务执行完成后才能执行

  • 不存在上述问题

事务隔离程度

读未提交 < 读已提交 < 可重复读 < 串行化

事务隔离性能

读未提交 > 读已提交 > 可重复读 > 串行化

最后

恭喜你看到最后,对于MySQL事务隔离的分享就到这里了,有什么问题欢迎留言或私信


http://www.mrgr.cn/news/52766.html

相关文章:

  • 05 熵编码
  • ORDER BY 排序
  • 采用全差分放大器的差分输入至差分输出电路
  • ES6面试题:(第一天)
  • Linux——网络层协议
  • UTHash(三): UTArray基础与高级用法
  • 在软件开发中低耦合和高内聚是什么,如何实现,请看文章
  • C++ 函数的参数传递
  • repo 命令大全(第一篇 repo init)
  • 【Linux线程】Linux多线程编程:深入理解线程互斥与同步机制
  • HDLBits中文版,标准参考答案 | 5 Verification: Writing Testbenches | 验证:编写测试平台
  • 【C++贪心】1775. 通过最少操作次数使数组的和相等|1850
  • 架构师之路-学渣到学霸历程-20
  • 《ESP32调试异常集锦》之移植I2C程序时i2c_master_cmd_begin返回-1
  • fiddler抓包23_重放请求(Replay)
  • 对比长安链、FISCO BCOS、蚂蚁链
  • OpenAI推出Swarm框架:简化多AI智能体系统交互
  • Python | Leetcode Python题解之第491题非递减子序列
  • 【JavaEE】【多线程】volatile,wait/notify
  • 【Qunar风控安全产品的探索之路】