• 事务的特点、隔离级别、及相关的现象


    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实现)
    《基于CMMI的软件工程及实训指导》第一章 软件工程基础
    使用 python 进行微信好友分析
    中国大学排名
    python小程序测试
    爬虫测试
    体育竞技分析

  • 原文地址:https://www.cnblogs.com/erfsfj-dbc/p/12165358.html
Copyright © 2020-2023  润新知