zoukankan      html  css  js  c++  java
  • 事务的隔离性以及隔离级别

    当多个线程都开启事务操作数据库中的数据时,数据库系统要能进行隔离操作,以保证各个线程获取数据的准确性。

    在介绍数据库提供的各种隔离级别之前,我们先看看如果不考虑事务的隔离性,会发生的几种问题:

    1.脏读,在一个事务处理过程里读取了另一个未提交的事务中的数据。

    2.不可重复读:在同一个事务中,重复执行相同的sql,查询到的结果却不同。这是由于在查询间隔,被另一个事务修改并提交了

    3.幻读:一个事务在前后两次查同一个范围时,后一次查询看到了前一次查询没有看到的

    四种隔离级别

    1.读未提交(Read uncommitted):最低级别,以上问题均无法解决

    2.读已提交(Read committed):可避免脏读

    3.可重复读(repeatable-read):确保事务可以多次从一个字段中读取相同的值,在此事务持续期间,禁止其他事务对此字段的更新,可避免脏读和不可重复读,仍会出现幻读。

    4.串行化(Serializable ):最严格的事务隔离级别,要求所有事务被串行执行。可避免脏读,不可重复读,幻读。

     Mysql的事务隔离级别

    Mysql默认的事务隔离级别是可重复读。但是我们在项目中Mysql一般用读已提交。

  • 相关阅读:
    Java/android下哈希sha1和MD5的实现
    ANDROID SOCKET 开发
    UML补充
    TCP协议中的三次握手和四次挥手(转)
    uva 658 最短路
    uva 11280 最短路
    uva 10246 最短路
    uva 11747,kruskal 并查集
    uva 544 dijkstra
    uva 1395 瓶颈树
  • 原文地址:https://www.cnblogs.com/chensisi/p/14119884.html
Copyright © 2011-2022 走看看