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 (可重复读)。

  • 相关阅读:
    hdu 4027 Can you answer these queries? 线段树
    ZOJ1610 Count the Colors 线段树
    poj 2528 Mayor's posters 离散化 线段树
    hdu 1599 find the mincost route floyd求最小环
    POJ 2686 Traveling by Stagecoach 状压DP
    POJ 1990 MooFest 树状数组
    POJ 2955 Brackets 区间DP
    lightoj 1422 Halloween Costumes 区间DP
    模板 有源汇上下界最小流 loj117
    模板 有源汇上下界最大流 loj116
  • 原文地址:https://www.cnblogs.com/xdsux/p/9549828.html
Copyright © 2011-2022 走看看