学习数据库四大特性及事务隔离级别

学习数据库四大特性及事务隔离级别

一丶事务ACID四大特性

  A(原子性Atomicity) :

    事务是数据库的逻辑工作单位,事务里所有的操作要么全做,要么不做.

  C(一致性Consistency):

    事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态.

  I(隔离性Isolation):

    事务的执行不能被其他事务干扰.

  D(永久性Durability):

    事务一旦提交,它对数据库中数据的改变就应该永久的.

二丶事务的隔离性

  MySql存在4种隔离级别.

  1.读未提交 Read Uncommitted

  从一个事务中可以读取到另一个未提交的事务中的数据, 一旦事务回滚, 刚刚读取到的数据将不复存在, 这就是所谓的脏读.

  2. 读已提交 Read Committed

  为解决脏读的问题,可以设置读已提交的事务隔离级别.只有事务提交之后的数据,才可以被读取到.

  这时有可能出现一个叫"不可重复读"的问题. 什么意思? 你开启一个事务A, 读取一个数据, 这期间事务并未提交. 与此同时, 另一人开启事务B, 将这个数据修改,并提交事务B. 这时, 你再次在事务A中读取该数据时, 发现数据变了.  你什么也没有做, 在同一个事务中, 这数据就变了. 这就是所谓的不可重复读.    

  3. 可重复读 Repeatable Read

  为解决不可重复读问题,可以将数据库中的隔离级别设置成"可重复读".这也是MySql默认的事务隔离级别.

  在这种隔离级别的情况下, 还会出现"幻读"的问题. 你开启事务A, 读取一张表的所有数据, 期间事务并未提交.

  与此同时,另一人开启事务B,往这张表中插入一条数据,并提交事务B.c此时,n你再次读取这张表的所有数据时,h会发现多了一条数据,会以为出现了"幻觉",看错了.

  4. 串行化 Serializable

    串行化是MySql最高的事务隔离级别.所有事务串行化执行,可以避免幻读,但效率低.

学习资料:.

  数据库四大特性以及事务隔离级别

原文地址:https://www.cnblogs.com/timfruit/p/11494336.html

时间: 2024-12-28 18:37:12

学习数据库四大特性及事务隔离级别的相关文章

数据库事务的四大特性和事务隔离级别

Reference: [1] http://www.cnblogs.com/fjdingsd/p/5273008.html [2] http://blog.csdn.net/fg2006/article/details/6937413 数据库事务四大特性 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全

数据库事务的四大特性及事务隔离级别

摘自:http://www.cnblogs.com/fjdingsd/p/5273008.html 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ⑵ 一致性(Consi

什么是事务、事务特性、事务隔离级别、spring事务传播特性

1.什么是事务: 事务是程序中一系列严密的操作,所有操作执行必须成功完成,否则在每个操作所做的更改将会被撤销,这也是事务的原子性(要么成功,要么失败). 2.事务特性: 事务特性分为四个:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持续性(Durability)简称ACID. 原子性(Atomicity):事务是数据库逻辑工作单元,事务中包含的操作要么都执行成功,要么都执行失败. 一致性(Consistency):事务执行的结果必须是使数据库数据

事务、事务特性、事务隔离级别、spring事务传播特性

1.什么是事务: 事务是程序中一系列严密的操作,所有操作执行必须成功完成,否则在每个操作所做的更改将会被撤销,这也是事务的原子性(要么成功,要么失败). 2.事务特性: 事务特性分为四个:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持续性(Durability)简称ACID. 原子性(Atomicity):事务是数据库逻辑工作单元,事务中包含的操作要么都执行成功,要么都执行失败. 一致性(Consistency):事务执行的结果必须是使数据库数据

数据库ACID原则和事务隔离级别

数据库ACID原则 A:原子性,Atomicity C:一致性,Consistency I:隔离性,Isolation D:持久性,Durability 在mysql中的innodb引擎,原子性,一致性,隔离性通过redo和undo实现,redo就是ib_logfile物理文件,而undo默认在共享表空间ibdata里面,通过设置参数可以独立出来. 事务隔离级别 Read Uncommitted(读未提交)    缺点是允许脏读,不允许同时进行写操作,但允许其他事务读没有提交的数据 Read C

图解MySQL事务隔离级别

本文主要通过大量的实例截图,来通俗的讲解MySQL的四种事务隔离级别的效果.关于事务隔离级别的概念以及不同隔离级别会引发的问题,大家可以自行百度,此处不再赘述. 标准数据库的四种事务隔离级别,不同隔离级别会引发的问题: 隔离级别 脏读 不可重复读 幻读 Read Uncommitted Y Y Y Read Committed N Y Y Repeatable Read N N Y Serializable N N N MySQL采用的默认隔离级别是Repeatable Read,我们可以用se

mysql-Innodb事务隔离级别-repeatable read详解

http://blog.csdn.net/dong976209075/article/details/8802778 经验总结: Python使用MySQLdb数据库后,如使用多线程,每个线程创建一个db链接,然后再各自创建一个游标cursor,其中第一个线程读一个表中数据为空,第二个写入该表一条数据并提交,第一个线程再读该表数据将仍然无法读出.和多数据库的事务级别应该有关系:还可以在第一个读之前先插入一条,将能够读出第二个线程写入并提交过的数据. 转载自:http://blog.csdn.ne

数据库事务的四大特性以及事务的隔离级别-与-Spring事务传播机制&隔离级别

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执

数据库的四大特性,以及事务的隔离级别

数据库必须具备的四个特性 1:原子性:事务包含的所有操作要么全部成功,要么全部失败回滚;成功必须要完全应用到数据库,失败则不能对数据库产生影响: 2:一致性:事务执行前和执行后必须处于一致性状态,用户A和用户B的前加起来一共是5000; 无论AB用户之间是如何相互转换的,事务结束后两个用户的钱加起来还是5000,这就是事务的一致性. 3:隔离性:当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不被其他事务的操作所干扰,多个并发事务之间要相互隔离: 4:持久性:一个事务一旦被提交了,那么