zoukankan      html  css  js  c++  java
  • 事务的特点、隔离级别、及相关的现象

    MySQL中的事务

    • 事务提供一种“要么什么都不做,要么做全套(All or Nothing)”的机制,她有ACID四大特性
    1. 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
    2. 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态是指数据库中的数据应满足完整性约束。除此之外,一致性还有另外一层语义,就是事务的中间状态不能被观察到(这层语义也有说应该属于原子性)。
    3. 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行,如同只有这一个操作在被数据库所执行一样。
    4. 持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。在事务结束时,此操作将不可逆转。
    • 事务的隔离级别
    1. 读未提交(read uncommitted)
      1. A事务读取到B事务未提交的数据,可能B事务回滚,那么A事务读取的应该是无效的数据,也称为脏读
      2. 写 行数据时不可同时写,避免了更新失效,但可读,所以可能造成脏读。
    2. 读已提交(read committed)
      1. 写的事务,将禁止写,且禁止读该写入的数据
      2. 读的事务,则允许其他事务读写
      3. 当A事务前后两次读同一条数据时,假如在中间B事务对此数据做了更新并提交事务,那么A事务前后两次读取的数据则不一致,称为重复读
    3. 可重复读(Repeatable read)
      1. 读的事务开启,不允许其他修改操作的事务,但可以读
      2. 当有insert操作时,可能引发读事务的前后总数不一致,称为幻读
    4. 串行化(serializable)
      1. 锁表操作,事务只能排队执行,不能并发执行,所以可以避免 脏读、重复读不一致、数量的幻读
  • 相关阅读:

    python 爬取可用
    安装完出现Deprecated: Function ereg_replace() is deprecated in
    mysql数据库还原出错ERROR:Unknown command ‘\’解决手记
    mysql 常用语句
    This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery 解决方法
    js 中 json对象 与 json字符串 间相互转换
    神器 Sublime Text 3 的一些常用快捷键
    神器 Sublime Text 3 的一些常用插件
    apache php gzip压缩输出的实现方法
  • 原文地址:https://www.cnblogs.com/erfsfj-dbc/p/12165358.html
Copyright © 2011-2022 走看看