mysql事务之提交读(Read Committed)
来源:互联网 发布:python 字符串格式化 编辑:程序博客网 时间:2024/05/29 12:53
1,Read Commited定义:
在提交读(READ COMMITTED)级别中,基于锁机制并发控制的DBMS需要对选定对象的写锁(write locks)一直保持到事务结束,但是读锁(read locks)在SELECT操作完成后马上释放(因此“不可重复读”现象可能会发生,见下面描述)。和前一种隔离级别一样,也不要求“范围锁(range-locks)”。
简而言之,提交读这种隔离级别保证了读到的任何数据都是提交的数据,避免读到中间的未提交的数据,脏读(dirty reads)。但是不保证事务重新读的时候能读到相同的数据,因为在每次数据读完之后其他事务可以修改刚才读到的数据。
提交读保证我们读到的数据都是事务提交后的数据,这样子就保证了程序中数据的正确性,在我们的应用中,基本都是使用的Read Commited隔离级别。
2,场景
我们首先设置我们的数据库事务级别为提交读,开启事务1,对student表做更新,但是不对其提交,再开启事务2对数据进行读取。
start TRANSACTION;
select * from student;
update student set name = 'a1' where id = 1;
select * from student;
在该事务中,更新数据后,我们查看student表,其中的数据已经发生了变化。我们开启事务2对数据查询。
select * from student;
在该事务中查询到的student还是旧数据,对事务1进行提交,再在事务2中查询,数据则获取到的为我们最新的数据。
再次期间事务2和事务1中读取数据,事务1未提交时两个读取的数据不一致,可能发生不可重复读。
- mysql事务之提交读(Read Committed)
- mysql事务之未提交读(Read uncommitted)
- Mysql事务和隔离级别(read committed, repeatable read)
- mysql binlog格式与事务级别read committed的关系
- mysql read committed
- MYSQL下read committed 和repeatable read级别下一致性非锁定读笔记+实测
- java 默认事务级别read committed对binlog_format的需求
- Java 默认事务级别read committed对binlog_format的需求
- java默认事务级别read committed对binlog_format的需求
- mysql READ-COMMITTED 模式下 行锁不会升级到表级锁
- Mysql的READ COMMITTED隔离级别的问题
- MySql之错误异常--Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is no
- mysql事务之可重复读(Repeated Read)
- read repeatable&read committed 区别
- mysql事务提交
- 关于mysql事务提交
- Mysql事务提交方式
- Mysql 事务提交过程
- mysql事务之未提交读(Read uncommitted)
- Android - Handler is abstract, cannot be instantiated.
- leetcode 279 : Perfect Squares
- 深克隆和浅克隆
- CodeForces 560A Currency System in Geraldion
- mysql事务之提交读(Read Committed)
- mysql事务之可重复读(Repeated Read)
- 优化mysql数据库性能的十个参数
- web资源访问流程
- LeetCode106—Construct Binary Tree from Inorder and Postorder Traversal
- python之false和None
- 300.LeetCode Longest Increasing Subsequence(medium)[动态规划]
- Java温习
- CodeForces 459B Pashmak and Flowers