这是我作为管理员职业生涯中遇到的最令人困惑的 MySQL 问题。有哪位精通 MySQL 的人能帮我解决一下这个问题吗?:
现在,我运行一个应用程序,每秒多次查询我的 MySQL/InnoDB 表。这些查询简单且经过优化 - 要么插入单行,要么使用索引进行选择。
通常,查询速度非常快,运行时间不到 10 毫秒。但是,大约每隔一小时,所有查询都会变慢。例如,今天 5:04:39,一堆简单查询都花费了超过 1-3 秒的时间运行,如我的慢查询日志所示。
为什么会出现这种情况?您认为解决方案是什么?
我自己有一些想法:也许硬盘在那段时间很忙?我确实运行了云服务器 (rackspace),但我将 flush_log_at_trx_commit 设置为 0,并设置了大量缓冲内存(磁盘上表大小的 10 倍)。所以插入和选择应该从内存中完成,对吗?
以前有人遇到过类似的事情吗?我搜索了整个论坛和其他论坛,似乎真的没有我以前见过的其他 MySQL 问题。
答案1
MySQL 自行变慢的可能性极小。问题是该服务器上还运行着什么,以及任何机会这可能会影响性能?如果可能的话,我还会计算缓慢的时间,例如,如果缓慢恰好发生在相同的时间间隔,则可能是某些 CRON 减慢了速度。完全随机的事情可能是您的硬盘出现故障,但由于这是虚拟机,理论上硬盘是 100% 隔离的,所以这应该不是问题。