事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。
两个并发事务同时访问数据库表相同的行时,这些问题可以归结为5类:
3类数据读问题(脏读、不可重复读和幻象读)
2类数据更新问题(第一类丢失更新和第二类丢失更新)。
1、幻读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次...
分类:
数据库 时间:
2015-03-18 23:21:09
阅读次数:
586
repeatable-read是Mysql默认事务隔离级别!能解决脏读以及不可重复读的问题,但可能出现幻读的情况不可重复读:在一个未提交的事务里,二次查询结果可能不相同,因为在这个事务执行过程中,外面的事务可能对这个数据集进行了修改并提交!幻读:一个事务在操作过程中!有别的事..
分类:
数据库 时间:
2015-03-11 19:58:52
阅读次数:
6275
为什么需要锁(并发控制)?在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:l丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。l脏读:当一个事务...
分类:
其他好文 时间:
2015-03-11 12:51:48
阅读次数:
142
1, 脏读一个事务读到另一个事务,尚未提交的修改,就是脏读。这里所谓的修改,除了Update操作,不要忘了,还包括Insert和Delete操作。脏读的后果:如果后一个事务回滚,那么它所做的修改,统统都会被撤销。前一个事务读到的数据,就是垃圾数据。举个例子:预订房间。有一张Reservation表,...
分类:
其他好文 时间:
2015-03-05 10:43:18
阅读次数:
114
隔离级别 是否存在脏读 是否存在不可读 是否存在幻读1 Read Unommited 没提交 可以读 Y Y Y2 Read Commited 提交了 ,可以读Oracle N Y Y4 Repeatable Read MySQL默认级别 N N Y8 Serialiazble 可序列化 N ...
分类:
Web程序 时间:
2015-03-04 19:03:37
阅读次数:
188
数据库事务并发带来的问题有:更新丢失、脏读、不可重复读、幻象读。假设张三办了一张招商银行卡,余额100元,分别说明上述情况。1、更新丢失:一个事务的更新覆盖了另一个事务的更新。事务A:向银行卡存钱100元。事务B:向银行卡存钱200元。A和B同时读到银行卡的余额,分别更新余额,后提交的事务B覆盖了事...
分类:
其他好文 时间:
2015-03-04 14:25:28
阅读次数:
147
事务的特性(隔离级别)
A:原子性。说明事务是一个不可分割的单位。
C:一致性.事务必须使数据库从一个一致性状态变换到另外一个一致性状态.(比如转账)
*I:隔离性。一个事务不能被其他事务打扰。
D:持久性。事务一旦提交,就应该被永久保存起来。
隔离级别的分类:
READ UNCOMMITTED:脏读、不可重复读、虚读都有可能发生。
READ COMMITTED:能避免脏读,不可重复读、虚读...
分类:
其他好文 时间:
2015-03-01 22:23:32
阅读次数:
189
SQL92标准规定,数据库事务有4个隔离级别,他们为了防止以下现象:脏读取(Dirty read):一个事务读取了另一事务未提交的数据A事务修改一笔数据,但仍未提交B事务查询数据,却能读取该笔未提交的数据(如果A事务回滚,则此笔数据为脏数据,所以为脏读取)不可重复读取(Nonrepeatable r...
分类:
数据库 时间:
2015-02-16 18:06:14
阅读次数:
140
原文:SQL Server 中的事务与事务隔离级别以及如何理解脏读, 未提交读,不可重复读和幻读产生的过程和原因原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫。所以花了点时间,把 SQL Serve...
分类:
数据库 时间:
2015-02-16 12:52:43
阅读次数:
266
锁的概述一. 为什么要引入锁多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到...
分类:
数据库 时间:
2015-02-03 16:55:23
阅读次数:
245