在说Isolation之前,需要谈谈关系型数据库的ACID特性。 A(atomicity,原子性),指一个事务要么完全完成,要么全部回滚到起始状态,不存在中间状态。 C(Consistency,一致性),指在事务开始前与事务结束后,及在事务内部,数据的完整性结束不被破坏,即不存在新旧数据的混合情况。 ...
分类:
数据库 时间:
2016-08-28 06:28:10
阅读次数:
213
MVCC 隔离级别 幻读 死锁 一个简单sql的加锁分析 delete from T1 where id=5 1. id主键 RC 2. id唯一索引 RC 3. id非唯一索引 RC 4. id无索引 RC 5. id主键 RR 6. id唯一索引 RR 7. id非唯一索引 RR 8. id无索 ...
分类:
数据库 时间:
2016-08-27 22:06:36
阅读次数:
183
不可重复读(Nonrepeatable Read) 一个事务的两次读取中,读取相同的资源得到不同的值。当事务T2在事务T1的两次读取之间更新数据,则会发生此种错误(重点在修改) 幻读(Phantom): 此概念相对难理解一些。 事务T1对一定范围内执行操作,T2对相同的范围内执行不兼容的操作,这时会 ...
分类:
其他好文 时间:
2016-08-27 00:23:13
阅读次数:
258
然后说说修改事务隔离级别的方法: 1. 全局修改,修改 mysql.ini 配置文件,在最后加上 1 #可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE. 2 [mysqld] 3 transaction-is ...
分类:
数据库 时间:
2016-08-23 10:13:43
阅读次数:
336
事务(transaction)是数据库管理系统的执行单位,可以是一个数据库操作(如Select操作)或者是一组操作序列。事务ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 原子性:保证事务中的所有操作全部 ...
分类:
数据库 时间:
2016-08-22 23:23:33
阅读次数:
227
四种数据库隔离级别如下所示: 1.READ-UNCOMMITTED(读取未提交内容) 由于在该隔离级别下即使事务未提交所做的修改也会对其他事务产生影响。所以该级别会出现数据脏读的发生。脏读:一个事务读取了另一个未提交的并行事务写的数据。 举例:老板给员工发工资,老板开启事务,然后想员工的账户转钱10 ...
分类:
数据库 时间:
2016-08-22 20:05:26
阅读次数:
203
SQLServer篇SQLServer中的提示SQLServer提示(Hints)是指定的强制选项或策略,由SQLServer查询处理器针对SELECT、INSERT、UPDATE或DELETE语句执行。提示将覆盖查询优化器可能为查询选择的任何执行计划。它分为:联接提示(JoinHints)查询提示(QueryHints)表提示(TableHint..
分类:
数据库 时间:
2016-08-17 14:10:10
阅读次数:
281
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用, ...
分类:
数据库 时间:
2016-08-17 13:37:25
阅读次数:
172
1. 当前mysql的隔离级别 REPEATABLE-READ 2. 用户读取的时候或者更改的时候(通过事务) 会对 更改的数据加行锁 和 gap锁 , 最终更改完毕后 去掉锁。 (行锁表示这条数据不能更改, gap锁表示这个索引区域不能被重建) 3. 更改数据无索引的情况, 会锁定全部表,这个很恐 ...
分类:
其他好文 时间:
2016-08-17 00:03:00
阅读次数:
199
数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。 √: 可能出现 ×: 不会出现 脏读 不可重复读 幻读 Read uncomm ...
分类:
数据库 时间:
2016-08-14 22:03:14
阅读次数:
177