• 黑马day11 事务的四大特性


    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中无法測试到幻读);

  • 相关阅读:
    [HNOI2004]宠物收养所 题解
    文艺平衡树(区间翻转)(Splay模板)
    搜索专题 题解
    Gorgeous Sequence 题解 (小清新线段树)
    花神游历各国 题解(小清新线段树/树状数组+并查集)
    [HNOI2012]永无乡 题解
    poj 3683 2-sat问题,输出任意一组可行解
    hdu 1824 2-sat问题(判断)
    hdu 4115 石头剪子布(2-sat问题)
    hdu 4421 和poj3678类似二级制操作(2-sat问题)
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7256038.html
Copyright © 2020-2023  润新知