一、数据库事务的四大特性

事物是指作为一个单元的一组有序的数据库操作,单元是不可分割的,如果一组数据的所有操作都执行成功,事物完成,进行事物提交(commit),其修改作用于所有数据库进程。有一个操作执行失败,事务执行失败进行回滚(rollback),该事务所有操作的影响被取消;

原子性(Atomicity)

事物的操作要么全部执行成功提交,要么全部失败进行事物回滚,执行成功,对数据的改变将作用于其它数据库,执行失败,将不对其它数据库产生影响;

一致性(Consistency)

事务的执行使数据库从一个状态到另一个状态,状态必须保持一致性,比如两个人进行转账,两个的总金额是1000,不过他们进行了多少次转账(事务),两个人的总额1000是不变的,这就是一致性状态;

持久性(Osolation)

事务执行成功,对数据库数据的修改是永久性的,即使服务器宕机,也不会丢失已提交事务的操作;

隔离性(durability)

多个线程并行对表执行事务,每个事务对其它事务都是隔离互不影响的,比如有两个线程A和B对同一数据S进行事务执行,线程A在获取数据S时,线程B的事务要么已经提交结束,要么还未执行

二、事务四个隔离级别

数据库隔离的四个级别分别是:1、读取未提交;2、读取已提交;3、可重读;4、可串行化。隔离级别采取不同的锁类型来实现,若读取的是同一个数据可能发生脏读、幻读等问题

读未提交(Read Uncommitted)

在该隔离级别,所有事物都可以看到其它事务未提交的执行结果,事务可读取其它事务未提交的数据;也就是“脏读”

读已提交(Read Committed)

事务只能看见其它事务已经提交的结果数据,在执行查询操作期间,同一事务的其它操作可能在这一操作期间进行了commit,到查询的结果集和上次查询的结果集不一样,也就是“不可重复读”

可重复读 (repeatable Read)

MySql的默认隔离级别,保证同一事务的不同操作在并发读取的行数据是一样的。在事务读取某一范围的数据期间,不保证其它事务对该范围写入新行,造成事务下次查询的时候,多了新的数据行,也就是所谓的**“幻读”**,Innodb通过版本控制解决了这一问题。

序列化(Serializable)

隔离的最高级别,通过强制让事务有序执行,解决幻读等问题。事务执行期间,对每个数据行加了共享锁,可能会引起其它事务查询超时等现象;

三、脏读、幻读、不可重复读

脏读(Drity Read )

事务读取了其它事务执行未提交的数据行

幻读(Phantom Read)

事务在检索期间,其它事物是数据执行了更新操作,导致前后两次检索的数据不一样

不可重复度 (Nonrepeatable Read)

事物在检索期间,同一事物的不同操作(实例)对数据行修改后进行了commit,导致前后检索的数据行不一致

与隔离级别的关系

隔离级别 脏读 不可重复读 幻读
读未提交 + + +
读已提交 x + +
可重复读 x x +
可序列化 x x x

数据库事务的四大特性和四个隔离级别相关推荐

  1. 不属于mysql事物的特性_mysql基础---事务 事务的四大特性(ACID) 四种隔离级别

    一.事务 mysql中,事务是一个最小的不可分割单元.事务能够保证一个业务的完整性. eg:银行转账 a -> -100 update user set money=money-100; b - ...

  2. 数据库事务的四大特性ACID

    本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...

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

    本篇文章主要介绍数据库事务的四大特性ACID,以及数据库的隔离级别. 事务 概念 事务指的是满足 ACID 特性的一系列操作.在数据库中,可以通过 Commit提交一个事务,也可以使用 Rollbac ...

  4. 数据库事务的四大特性(ACID)

    数据库事务的四大特性 1,      什么是数据库事务? 数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成. 意思就是一连串的数据库操作,即一串增删查改的集合. 2,   数据库 ...

  5. 数据库事务及其四大特性

    数据库事务是数据库运行中的逻辑工作单位,单个逻辑工作单元所执行的一系列操作,要么都执行,要么都不执行.例如银行取款事务分为2个步骤(1)存折减款(2)提取现金,2个步骤必须同时完成或者都不完成. 数据 ...

  6. MySQL数据库事务的四大特性

    MySQL数据库事务的四大特性以及事务的隔离级别_l1394049664的博客-CSDN博客_mysql数据库事务 深入学习MySQL事务:ACID特性的实现原理 - 编程迷思 - 博客园

  7. 事务的四个特性以及四个隔离级别

    概述 数据库中的事务有四大特性(ACID),分别是原子性.一致性.隔离性和持久性.针对隔离性,还有四个隔离级别,分别是串行化.可重复读.读已提交和读未提交.这四个隔离级别是针对并发事务中存在的三个问题 ...

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

    数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么全部执行,要么全部都不执行. 一个逻辑工作单元要成为事务,必须满足事务的四大特性(ACID).即 ...

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

    本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...

最新文章

  1. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!
  2. hive sql练习_SQL语句+语法 I 数据分析面试必备
  3. 传递数组_Fortran:派生数组与数组传递进子程序耗费时间比较
  4. 制作网站设计项目进度表让用户充分了解网站制作进程
  5. Centos之压缩和解压缩命令
  6. CentOS安装libpcap
  7. python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目
  8. Vue 面试题 (全)
  9. 关于 Azure SQL 数据库你不知道的 5 件事
  10. Android中文图混排时文图的居中对齐 FontMetrics以及自定义ImageSpan实现
  11. python下载百度文库文档_Python百度文库爬虫之txt文件
  12. 万字长文带你了解ETL和数据建模~!
  13. java经典实例 源代码_100个Java经典编程实例源代码JAVA源码下载
  14. android反编译打包出错,APK打包错误,能解决的给红包!
  15. VMware Workstation 虚拟机下载及安装的详细步骤
  16. 雷电3菊链功能_简单说说雷电接口有哪些用途?
  17. Linux分区磁盘空间扩展、扩容、合并
  18. ionic3 生命周期方法
  19. Gitblit团队协作
  20. android 仿qq相册功能,Android第四十九期 - 仿QQ空间上传功能+本地数据库存储

热门文章

  1. 35岁后离职你还会去上班吗?
  2. 0929 - CloudXNS 域名解析需要实名认证
  3. 物联网毕业设计选题大全
  4. java 输出 大小写字母 a-z A-Z
  5. java中给数组添加值的方法
  6. 百度SEO站群Listable英文版主题-目录列表主题(WordPress响应式)
  7. Quartus Prime设计十五人投票表决器
  8. FileNotFoundException 问题的解决
  9. RxJava2出现:Unable to create call adapter for io.reactivex.Flowable
  10. 第三方物流学习(六)