• 数据库事务的隔离级别


     mySQL默认第三种

    脏读:当一个事务读取另一个事务尚未提交的修改时,产生脏读。

    不可重复读:一个事务对同一行数据重复读取两次,但是却得到了不同的结果

    幻读:事务在操作过程中进行两次查询,第二次查询的结果包含了第一次查询中未出现的数据     比如:一个事务对数据库进行操作,这种操作的范围是数据库的全部行,然后第二个事务也在对这个数据库操作,这种操作可以是插入一行记录或删除一行记录,那么第一个是事务就会觉得自己出现了幻觉,怎么还有没有处理的记录呢? 或者 怎么多处理了一行记录呢?

    未提交读:即使一个更新语句没有提交,但是别的事务可以读到这个改变,“排他写锁”实现

    已提交读:语句提交以后只能读取到已经提交的数据  通过“瞬间共享读锁”和“排他写锁”实现。

    可重复读:在同一个事务里面先后执行同一个查询语句的时候,得到的结果是一样的。  通过“共享读锁”和“排他写锁”实现。

    可串行化:一个事务执行的时候不允许别的事务并发执行。读加共享锁,写加排他锁,读写互斥

    事务隔离的实现——锁

    共享锁(S锁):用于只读操作(SELECT),锁定共享的资源。共享锁不会阻止其他用户读,但是阻止其他的用户写和修改

    更新锁(U锁):用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁

    独占锁(X锁,也叫排他锁):一次只能有一个独占锁用在一个资源上,并且阻止其他所有的锁包括共享缩。写是独占锁,可以有效的防止“脏读”

  • 相关阅读:
    Python之正则表达式模块
    Python之装饰器复习
    Django请求生命周期之响应内容
    网络编程
    Django实现验证码
    JSONP跨域请求
    原生Ajax(XMLHttpRequest)
    JavaScript函数与面向对象
    JavaScript作用域
    Django之Model操作
  • 原文地址:https://www.cnblogs.com/team42/p/7047380.html
Copyright © 2020-2023  润新知