mysql怎么读(mysql的当前读和快照读)
当前读和快照读的概念先解释一下:当前读类似于隔离级别里的读已提交(RC)的逻辑,就是读取的是最新的数据,快照读就是读的是快照生成时候的数据。
快照是通过UNDO LOG + MVCC实现的,这个如果解释逻辑的话可以说很多,这里就不详细的阐述了,现在区分场景什么时候是当前读,什么时候是快照读:
1.当前读(Locking Reads):
select...lock in share mode 这个基本上用不到
select...for update (record lock and table lock) 这个是使用悲观锁的时候时候的,用的也不多
update , delete , insert 这个是用的非常多的,类似于update set version = version + 1 where id = 1 这样每执行一次,version都会+1,就是因为这个地方是当前读了。
参考:https://dev.mysql.com/doc/refman/8.0/en/innodb-consistent-read.html
2. 快照读(Consistent Nonlocking Reads)
select .. from table 默认执行一个简单的select就是快照读
for RC : every select 在RC的隔离级别下,每一个select都是快照读
for RR : first select in transaction 在RR的隔离级别下,是在启动事务的第一次select的时候,才会这个快照的开始点
参考:https://dev.mysql.com/doc/refman/8.0/en/innodb-consistent-read.html
还是找mysql的官方文档说的比较清晰
-
阿里国际站(“死守”阿里巴巴国际站)
2024-05-26
-
淮海经济区(淮海经济区三个主要经济城市数据,徐州规模大,济宁扎实临沂活跃)
2024-05-26
-
吴江市(12个版聚焦吴江经验,全国分享)
2024-05-26
-
书法学习(掌握深入临帖的关键,学书法便可豁然开朗)
2024-05-26
-
布政(清代此省份是个特例,不仅有两个布政使,而且还有两个省会)
2024-05-26
-
519是什么意思(你知道中国旅游日为什么定在“5·19”吗?)
2024-05-26