我试图了解MySql (使用InnoDB)如何在代码中实现锁定和事务的内部机制。我理解锁和事务的不同类型和概念,但我真的想深入了解MySQL是如何在代码中内部实现的。我试着阅读文档和MySQL开源代码,但没有找到一个好的起点。谷歌也无济于事。所有的搜索结果都在讨论不同类型的锁,而不是实际上是如何实现的。这里有什么帮助吗?
发布于 2020-06-28 23:02:36
InnoDB采用MVCC作为并发控制机制。Yo可以得到更多关于它的细节,这里。
既然您提到要查看代码,我建议下载当前的源代码,并在InnoDB目录(storage/innobase)中浏览一下。事务在trx中实现,锁定在lock子文件夹中。最简单的方法可能是使用IDE,进行某种关键字搜索,甚至从源代码构建MySQL,并调试查询的执行。因此,您可能需要一些关于MySQL核心和InnoDB存储引擎之间接口的知识。您可以在这里找到以下详细信息:https://dev.mysql.com/doc/internals/en/custom-engine.html
https://dba.stackexchange.com/questions/269985
复制相似问题