• 事务的隔离级别


    • READ UNCOMMITTED (读未提交)
      • 事务的修改即使没有提交,对其他事务也是可见的。
      • 事务可以读取未提交的数据,这也被称为脏读(Dirty Read)
      • 从性能上来说,Read Uncommitted不会比其他级别高太多,但是却缺乏其他级别的很多好处,所以在实际应用中很少用
    • READ COMMITTED (读提交)
      • 大多数数据库的默认隔离级别(但MySQL不是)
      • 满足隔离性的简单定义:一个事务开始时,只能看见已经提交的事务所做的修改。也就是说,一个事务从开始到提交之前,所做的任何修改对其他事务都是不可见的
      • 这个隔离级别也被叫做不可重复读(nonrepeatable read),
    • REPEATABLE READ (可重复读)
      • 解决了脏读的问题,该级别保证同一个事务多次读取同行的记录结果是一样的。
      • 无法解决另一个幻读(Phantom Read)的问题,即某个事务A读取某部分数据时,另一个事务在这部分数据中插入了新的记录,当A再去读取该部分数据时,会产生幻行(Phantom Row)
      • InnoDB通过多版本并发控制来解决了幻读的问题
    • SERIALIZABLE (可串行化)
      • 是最高的隔离级别。通过强制事务串行化执行,避免了幻读问题
      • 简单说,会在读取的每行数据上都加锁,所以会导致大量的超时和锁争用的问题
  • 相关阅读:
    昨天一个人KTV啦 哈哈....
    久违的大雪终于来了
    我心目中的英雄李连杰
    今天终于可以回家了
    ajax 笔记不用刷新实现数据的分页显示 2 (下)
    学Linux可不知道怎么入手呀
    在web.config里配制连接Access数据库字符串
    昨天头请我们吃饭
    PDA程序读取xml文件的想法
    关于layui踩过的坑
  • 原文地址:https://www.cnblogs.com/William364248886/p/14988760.html
Copyright © 2020-2023  润新知