zoukankan      html  css  js  c++  java
  • 【JavaP6大纲】MySQL篇:数据库事务隔离级别

    数据库事务隔离级别?

    脏读:
    一个事务a修改或添加了一条数据,在a事务提交之前,另一个事务b读到了这条数据,并进行了操作。a如果回滚的话,脏读可能会导致b操作不存在的数据。

    不可重复读:
    在一次事务中的两次相同条件的查询不一致,比如a事务执行select count(*) from user where name=‘alex’ 这时事务b插入了一条数据name=alex并提交这就会导致事务a第二次查询的时候多了一个计数

    幻读:
    事务a与事务b是完全隔离的,事务a执行’select id from user得到的id为1和2.这个时候b事务在user表中添加了一条数据id=3并提交,然后事务a想添加一条id为3的数据,如果id是唯一的,那a就会发现插不进去并提示dumplicate entry 3 for key id,原因是事务a阻止事务b的插入行为。

    数据库事务隔离级别

    Read uncommitted 读未提交
    公司发工资了,领导把20000元打到廖志伟的账号上,但是该事务并未提交,而廖志伟正好去查看账户,发现工资已经到账,是20000元整,非常高兴。可是不幸的是,领导发现发给廖志伟的工资金额不对,是16000元,于是迅速修改金额,将事务提交,最后廖志伟实际的工资只有16000元,廖志伟空欢喜一场。

    出现上述情况,即我们所说的脏读,两个并发的事务,“事务A:领导给廖志伟发工资”、“事务B:廖志伟查询工资账户”,事务B读取了事务A尚未提交的数据。当隔离级别设置为Read uncommitted时,就可能出现脏读,如何避免脏读,请看下一

  • 相关阅读:
    Eclipse中properties文件中文显示编码、乱码问题
    Eclipse中安装yml插件( YEdit )
    Java中如何返回Json数组
    ASIFormDataRequest 登录
    Safari里使用JsonView
    beginUpdates和endUpdates
    svn log 不显示日志的问题
    svn代码回滚命令
    Tomcat: localhost:8080 提示404
    android定时三种方式
  • 原文地址:https://www.cnblogs.com/javawxid/p/15644450.html
Copyright © 2011-2022 走看看