zoukankan      html  css  js  c++  java
  • 【Mysql】事务的四种特性和隔离级别

    四种特性:

    原子性(Atomicity):事务里所有操作视为一个整理,要么全部完成,要么全回滚。

    一致性(Consistency):操作前后,数据库内数据逻辑上一致。比如:1w元转账给不同的人,转出去的和应该等于1w元,余额应该是0.

    隔离性(Isolation):事务彼此之间应当互不干扰,互不感知。

    持久性(Durability):对数据库的操作是一旦提交(即使数据库出现故障,也应完成这次提交),在下一次事务操作数据前不会改变。

    事务的隔离级别:

    个人感觉可以对应事务的安全级别来理解:

    1.Read uncommitted (读未提交)——无隔离时,脏读可发生:脏读是指事务a访问到事务b未提交的数据,随后事务b回滚,事务a却使用未提交数据继续执行。

    2.Read committed (读已提交)——因事务提交后其诗句才可读,所以不可脏读,但不可重复读问题依然可发生:在一个事务多次读取同个数据的时候,因为另一个事务的提交导致数据变化,前后读取的数据不一致。

    3。Repeatable read (可重复读)——此级别可避免脏读和不可重复读的问题,但可能发生虚读问题:比如a=1,事务1将其改成2,事务2访问到a=2,开始进行操作,此时事务3把a改回1.事务2操作结束发现a=1。

    4.erializable (串行化):事务之间串行执行,可避免脏读、不可重复读、虚读的发生。

    四种隔离级别下的性能一次下降。多数情况下在读已提交隔离级别下操作就可以了。

    在MySQL数据库中默认的隔离级别为Repeatable read (可重复读)。

  • 相关阅读:
    Crystal Reports基础知识
    Dashboard与中国式报表的区别以及常见的Dashboard控件
    函数总结
    SQL Server 索引使用入门
    Linux+C 开发基础
    vi 开发环境~~转载
    linux mysql 基础操作使用
    sourceinsight 快捷键 转帖
    vi 利器
    fedora 7 英文环境 的汉字显示
  • 原文地址:https://www.cnblogs.com/xdsux/p/9549828.html
Copyright © 2011-2022 走看看