• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    数据库的四种隔离级别

    1,读未提交,Read Uncommited。

    指的是一个事务读取到另外一个事务还没有提交的内容。这种情况是必须要避免的。因为其他事务未提交的数据,是随时有可能进行回滚的,所以,任何时候,都不应该允许程序读取到某个事务还未提交的数据。如果读取到了别的事务未提交的数据,这种情况称为脏读。要想解决脏读的问题,可以提高数据库的事务隔离级别,把事务隔离级别设置为读已提交。

    2,读已提交,Read Committed。

    这个隔离级别可以解决脏读的问题。

    在该隔离级别下,不允许2个未提交的事务之间并行执行,但它允许在一个事务执行的过程中,另外一个事务得到执行并提交。这样,会出现一种情况,第一个事务前后两次select出来的某行数据,值可能不一样。值改变的原因是,穿插执行的事务2对该行数据进行了update操作。在同一个事务中,两次select出来的值不相同的问题称为不可重复读问题。要想解决不可重复读问题,需要把数据的隔离级别设置为可重复读。

    3,可重复读。Repeatable Read。

    在这个隔离级别下,可以解决不可重复读的问题。

    在该隔离级别下,在一个事务使用某行的数据的过程中,不允许别的事务再对该行数据进行操作。可重复读应该是给数据库的行加上了锁。这种隔离级别下,依旧允许别的事务在该表中插入和删除数据,于是就会出现,在事务1执行的过程中,如果先后两次select出符合某个条件的行,如果在这两次select直接另一个事务得到了执行,insert或delete了某些行,就会出现先后两次select出来的符合同一个条件的结果不一样,第一次select好像出现了幻觉一样,因此,这个问题也被成为幻读。要想解决幻读问题,需要将数据库的隔离级别设置为串行化。

    4,串行化,Serialization。

    串行化可以解决幻读的问题。

    它要求事务的执行完全串行执行。所以失去了并发的效率。

    Mysql的默认隔离级别为可重复读。

    总而言之,数据的事务隔离级别分为4种,从低到高依次为读未提交,读已提交,可重复读,串行化。与数据库事务隔离级别相关的问题有3个,分别是脏读,不可重复读,幻读。脏读问题需要用读已提交来解决,但读已提交会存在不可重复读问题。不可重复读问题需要用可重复读来解决,但可重复读会存在幻读问题。幻读问题需要用串行化来解决。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • 基于mysql+mycat搭建稳定高可用集群负载均衡主备复制读写分离操作
    • mycat在windows环境下的安装和启动
    • 利用mycat实现mysql数据库读写分离的示例
    • MyBatis利用MyCat实现多租户的简单思路分享
    • mysql mycat 中间件安装与使用
    • 数据库sql语句优化
    • 数据库查询优化之子查询优化
    • 基于MySQL数据库的数据约束实例及五种完整性约束介绍
    • Mysql数据库乱码问题的对应方式
    • 数据库中间件MyCat的介绍
    上一篇:一条慢SQL导致购物车服务无法使用的解决方案
    下一篇:分布式和集群的概述讲解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    数据库的四种隔离级别 数据库,的,四种,隔离,级别,