扫码阅读
手机扫码阅读

这道题,两个八年经验的候选人没答出来

37 2024-11-05

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:这道题,两个八年经验的候选人没答出来
文章来源:
江南一点雨
扫码关注公众号

文章摘要

一 不可重复读 (Non-Repeatable Read)

不可重复读是指在同一个事务中,多次读取同一数据时,由于其他事务的修改提交,导致读取结果不一致。例如,事务A读取数据x值为100,事务B将x修改为200并提交,事务A再次读取时发现x为200,体现了同一条数据的修改导致的不一致。

二 幻读 (Phantom Read)

幻读是指在同一个事务中,执行相同查询多次时,由于其他事务的插入或删除操作,返回的记录数或内容发生变化。例如,事务A查询id>5的记录,返回n条记录,事务B插入id为6的记录并提交,事务A再次查询返回n+1条记录,体现了记录的插入或删除。

总结来说,不可重复读侧重于记录的更新,而幻读侧重于记录的插入或删除。

三 连环追问

3.1 不可重复读和幻读如何解决

MVCC通过在事务开始时为数据表拍照,确保事务执行期间查询的是快照数据,解决不可重复读问题。Gap Lock,即间隙锁,阻止其他事务在被操作记录的两端插入或删除数据,进一步辅助MVCC解决幻读问题。

3.2 可重复读隔离级别是否存在幻读

在MySQL的可重复读隔离级别下,幻读问题大部分被解决。但在某些情况下,如事务A进行快照读后,事务B插入记录并提交,事务A更新这条记录时,仍然可能发生幻读。

文章最后指出,即使在困难的环境下,技术水平也需要不断提升才能在求职中脱颖而出,并推荐了作者提供的简历辅导和模拟面试服务。

想要了解更多内容?

查看原文:这道题,两个八年经验的候选人没答出来
文章来源:
江南一点雨
扫码关注公众号