数据库隔离级别 及 其实现原理
来源:互联网 发布:wordpress windows包 编辑:程序博客网 时间:2024/05/21 01:54
我这4种隔离级别的相应原理总结如下:
READ_UNCOMMITED 的原理:
- 事务对当前被读取的数据不加锁;
- 事务在更新某数据的瞬间(就是发生更新的瞬间),必须先对其加 行级共享锁,直到事务结束才释放。
表现:
- 事务1读取某行记录时,事务2也能对这行记录进行读取、更新;当事务2对该记录进行更新时,事务1再次读取该记录,能读到事务2对该记录的修改版本,即使该修改尚未被提交。
- 事务1更新某行记录时,事务2不能对这行记录做更新,直到事务1结束。
READ_COMMITED 的原理:
- 事务对当前被读取的数据加 行级共享锁(当读到时才加锁),一旦读完该行,立即释放该行级共享锁;
- 事务在更新某数据的瞬间(就是发生更新的瞬间),必须先对其加 行级排他锁,直到事务结束才释放。
表现:
- 事务1读取某行记录时,事务2也能对这行记录进行读取、更新;当事务2对该记录进行更新时,事务1再次读取该记录,读到的只能是事务2对其更新前的版本,要不就是事务2提交后的版本。
- 事务1更新某行记录时,事务2不能对这行记录做更新,直到事务1结束。
REPEATABLE READ 的原理:
- 事务在读取某数据的瞬间(就是开始读取的瞬间),必须先对其加 行级共享锁,直到事务结束才释放;
- 事务在更新某数据的瞬间(就是发生更新的瞬间),必须先对其加 行级排他锁,直到事务结束才释放。
表现:
- 事务1读取某行记录时,事务2也能对这行记录进行读取、更新;当事务2对该记录进行更新时,事务1再次读取该记录,读到的仍然是第一次读取的那个版本。
- 事务1更新某行记录时,事务2不能对这行记录做更新,直到事务1结束。
SERIALIZABLE 的原理:
- 事务在读取数据时,必须先对其加 表级共享锁 ,直到事务结束才释放;
- 事务在更新数据时,必须先对其加 表级排他锁 ,直到事务结束才释放。
表现:
- 事务1正在读取A表中的记录时,则事务2也能读取A表,但不能对A表做更新、新增、删除,直到事务1结束。
- 事务1正在更新A表中的记录时,则事务2不能读取A表的任意记录,更不可能对A表做更新、新增、删除,直到事务1结束。
原文转载:http://www.cnblogs.com/wajika/p/6680200.html
阅读全文
0 0
- 数据库隔离级别 及 其实现原理
- 数据库隔离级别及其实现原理
- 【mysql】细说 数据库隔离级别 及实现
- 数据库事务及隔离级别
- 事务隔离级别及实现
- 数据库事务不同隔离级别的原理
- Innodb中的事务隔离级别实现原理
- Innodb隔离级别的实现原理
- 数据库事务、隔离级别及锁
- 数据库事务隔离级别及相关实例
- 数据库事务四大特征及隔离级别
- Mysql数据库事务的隔离级别和锁的实现原理分析
- Mysql数据库事务的隔离级别和锁的实现原理分析
- 0151 Mysql数据库事务的隔离级别和锁的实现原理分析
- Mysql数据库事务的隔离级别和锁的实现原理分析(mvcc详解)
- 数据库隔离级别。。。
- 数据库事务隔离级别
- 数据库隔离级别
- (三)-垃圾收集策略
- python 类 __dict__ 在赋值时的使用
- Struts2笔记(10)——拦截器(Interceptor)(一)
- tf.Variable()与tf.get_variable()对比
- hive
- 数据库隔离级别 及 其实现原理
- CorelDRAW软件有了节点灵活应用还会么问题解决不了的呢
- 验证人脸识别算法
- spring初始化执行
- Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)
- 强烈推荐:90%的人都不知道的电影资源下载站
- CCF 窗口
- Unity编辑器拓展之三:拓展Unity的Hierarchy面板
- PX4飞控学习(三)