我有一个应用程序已经运行了很长一段时间,但最近一些项目开始在慢查询日志中弹出。所有查询都是可以使用重构的复杂且丑陋的多连接选择语句。我相信它们都有斑点,这意味着它们被写入磁盘。让我好奇的部分是为什么他们中的一些人有与之相关的锁定时间。所有查询都没有应用程序设置的任何特定锁定协议。据我所知,除非明确指定,否则默认情况下您可以读取锁。
所以我的问题是:什么情况下会导致 select 语句必须等待锁定(从而在慢查询日志中报告)?假设 INNODB 和 MISAM 环境。
磁盘交互是否可以列为某种锁定时间?如果是的话,周围有没有说明这一点的文件?
提前致谢。