2016 - 2024

感恩一路有你

mysql使用MVCC来解决幻读 mysql有了间隙锁只有能够解决幻读问题吗?

浏览量:1738 时间:2021-03-16 20:57:22 作者:admin

mysql有了间隙锁只有能够解决幻读问题吗?

不可重复读取:在未提交的事务中,辅助查询结果可能不同,因为在事务执行期间,外部事务可能会修改和提交数据集

!虚幻阅读:操作过程中的事务!有其他事务修改并提交此数据集,但无法读取这些操作的第一个事务。提交此事务时,可能会导致错误:找不到插入的数据,但重复插入

!不可重复读取和非真实读取的区别:

不可重复读取可以读取其他事务提交的数据,而非真实读取不能读取其他事务提交的数据

!间隙锁:间隙锁主要用于防止不真实的读取。它在可重复读取隔离级别下使用。它是指在检索数据的条件和范围时,锁定数据范围中可能不存在的值

间隙锁用法?

间隙锁定功能

确保锁定时某一间隙内的数据不会改变。例如,MySQL的默认隔离级别是repeatable read(RR)。

使用唯一索引搜索具有唯一行的语句时,不需要间隙锁。例如,如果下面语句的ID列具有唯一索引,则记录锁将仅用于ID值为10的行。

选择*from t where id=10 for update//注意:普通查询是快照读取,不需要锁定

如果上述语句中的id列没有索引或不唯一,则该语句将生成一个间隙锁。

mysql使用MVCC来解决幻读 mysql间隙锁死锁 间隙锁原理

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。