事务的隔离级别

来源:互联网 发布:淘宝首页css代码 编辑:程序博客网 时间:2024/05/20 07:14

   1.脏读

          脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据.

          当一个事务正在多次修改某个数据,而在这个事务中这多次的修改都还未提交,这时一个并发的事务来访问

          该数据,就会造成两个事务得到的数据不一致.列如:用户A向用户B转账100元,对应SQL 命令如下:

            update account set money=money+100 where name='B'; (此时A通知B)

            update account set money=money-100 where name='A';

           当只执行第一条SQL时,A通知B查看账户,B发现确实钱已到账(此时即发生了脏读),而 之后无论第二条SQL是

           否执行,只要该事务不提交,则所有操作都将回家,那么当B以后再次查看账户是就会发现钱其实并没有转.

     2.不可重复读

          不可重复读是指对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,

           被另一个事务修改并提交了.

     3.虚读(幻读)

         幻读是事务非独立执行时发生的一种现象。

   幻读和不可重复读都是读取了另一条已经提交的事务(这点就脏读不同),所不同的是

      不可重复读查询的都是同一个数据项,而        幻读针对的是一批数据整体(比如数据的

      个数)。

0 0
原创粉丝点击