1.事务的四大特性:一个事务具有的最主要的特性。一个设计良好的数据库能够为我们保证这四大特性。

1.1原子性:原子性是指事务是一个不可切割的工作单位,事务中的操作要么都发生要么都不发生。

1.2一致性:假设事务运行之前数据库是一个完整性的状态,那么事务结束后,不管事务是否运行成功,数据库仍然是一个完整性状态.

数据库的完整性状态:当一个数据库中的全部的数据都符合数据库中所定义的全部的约束,此时能够称数据库是一个完整性状态.

1.3隔离性:事务的隔离性是指多个用户并发訪问数据库时。一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间事务要隔离

1.4持久性:持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的。接下来即使数据库发生问题也不应该对其有不论什么影响。

2.隔离性:

将数据库设计成单线程的数据库,能够防止全部的线程安全问题,自然就保证了隔离性.可是假设数据库设计成这样,那么效率就会极其低下.

假设是两个线程并发改动,一定会互相捣乱,这时必须利用锁机制防止多个线程的并发改动

假设两个线程并发查询,没有线程安全问题

假设两个线程一个改动,一个查询……

脏读:一个事务读取到还有一个事务未提交的数据

不可反复读:在一个事务内读取表中的某一行数据,多次读取结果不同 — 行级别的问题

脏读

事务1:张三给李四转账100元

事务2:李四查看自己的账户

 t1:事务1:開始事务

 t2:事务1:张三给李四转账100元

 t3:事务2:開始事务

 t4:事务2:李四查看自己的账户,看到账户多出100元(脏读)

 t5:事务2:提交事务

 t6:事务1:回滚事务,回到转账之前的状态

不可反复读

事务1:酒店查看两次1048号房间状态

事务2:预订1048号房间

 t1:事务1:開始事务

 t2:事务1:查看1048号房间状态为空暇(第一次查询)

 t3:事务2:開始事务

 t4:事务2:预定1048号房间

 t5:事务2:提交事务

 t6:事务1:再次查看1048号房间状态为使用(第二次查询)

 t7:事务1:提交事务

对同一记录的两次查询结果不一致!

幻读

事务1:对酒店房间预订记录两次统计

事务2:加入一条预订房间记录

 t1:事务1:開始事务

 t2:事务1:统计预订记录100条

 t3:事务2:開始事务

 t4:事务2:加入一条预订房间记录

 t5:事务2:提交事务

 t6:事务1:再次统计预订记录为101记录

 t7:事务1:提交

  对同一表的两次查询不一致。

不可反复读和幻读的差别:

 不可反复读是读取到了还有一事务的更新。

 幻读是读取到了还有一事务的插入(MySQL中无法測试到幻读);

黑马day11 事务的四大特性的更多相关文章

  1. MySQL之事务的四大特性

    事务就是一组原子性的SQL查询,或者说一个独立的工作单元.如果数据库引擎能够成功地对数据应用该组查询的全部语句,那么久执行该组查询.如果其中任何一条语句因为崩溃或其他原因无法执行,那么所有语句都不会执 ...

  2. 事务的四大特性(ACID):

    事务的四大特性(ACID):    1.原子性(Atomicity): 事务中所有操作是不可再分割的原子单元.事务中所有操作要么都执行成功,要么都执行失败. 2.一致性(Consistency): 事 ...

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

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

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

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

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

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

  6. 数据库事务的四大特性以及4种事务的隔离级别-以及对应的5种JDBC事务隔离级别

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

  7. java面试题之----数据库事务的四大特性及隔离级别

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

  8. 事务的四大特性ACID

    ACID是指数据库事务的四大特性,是由Jim Gray在19世纪70年代后期提出的概念,1983年Andreas Reuter and Theo Härder创造了ACID这个缩略语用来描述这四大特性 ...

  9. DBMS事务的四大特性

    数据库事务的四大特性分别是:原子性.一致性.隔离性和持久性. 特性 说明 实现 一致性 在一个事务执行之前和执行之后数据库都必须处于一致性状态.假如数据库的状态满足所有的完整性约束,也可以说数据库是一 ...

随机推荐

  1. [shell 编程] if [ $# -eq 0 ]该语句是什么含义?

    $0: shell或shell脚本的名字$*:以一对双引号给出参数列表$@:将各个参数分别加双引号返回$#:参数的个数$_:代表上一个命令的最后一个参数$$:代表所在命令的PID$!:代表最后执行的后 ...

  2. JVM监测分析JConsole

    一.基本操作   启动界面 1.JConsole是什么 从Java 5开始引入了JConsole.JConsole是一个内置Java性能分析器,可以从命令行或在GUI shell中运行.您可以轻松地使 ...

  3. android 两次调用DatePickerDialog.onDateSet()

    在4.2.2版本号上调用系统的DatePickerDialog,发现点击确定时系统调用onDateSet()两次,须要过滤当中的一次. Calendar mCalendar = Calendar.ge ...

  4. C#属性和字段区别、get与set用法

    属性和字段的区别 在C#中,我们可以非常自由的.毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值.或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态 ...

  5. ES6/ES2015核心内容(下)

    import export 这两个家伙对应的就是es6自己的module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小工 ...

  6. php解耦的三种境界

    我们有三个类,Db,FileSystem,Session;实际业务需求要组合操作这三个类. 一.常规做法 class Db { public function read($id) { } } clas ...

  7. Django——Django,uwsgi Nginx组合建站

    近来抽时间看了点关于python的资料,试着架设了下运行环境,于是写了本文记录之. 用到的软件: Django-1.6.1 uwsgi-2.0.7 python-3.3.3 nginx-1.7.7 安 ...

  8. <转>sock代理服务原理(TCP穿透)

    原文转自:http://www.cppblog.com/zuhd/archive/2010/06/08/117366.html sock代理分为sock4代理和 sock5代理.sock4支持TCP( ...

  9. 千万级大数据的Mysql数据库SQL语句优化

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  10. filebeat 选项

    Filebeat Options input_type: log|stdin 指定输入类型 paths 支持基本的正则,所有golang glob都支持,支持/var/log/*/*.log enco ...