我们的MySQL服务器表现得很奇怪 - 在一个表上执行大量查询将几乎锁定它,没有其他查询将被响应,即使它在完全不相关的表上是一个微不足道的(如SELECT
钥匙,INSERT
,甚至是EXPLAIN
) - 它只会等待沉重的一个完成。
我真的没有想法会导致什么 - 那就是大量的免费线程,CPU处于空闲/等待状态,网络是免费的,有足够的内存......等。
任何人有什么想法要找什么?
答案 0 :(得分:0)
MySQL有多少内存?我的猜测是,它必须转到临时表的磁盘,这可能是杀手。你的my.cnf / my.ini文件中的innodb_buffer_pool_size有多大?通过增加(增加内存使用量)较小的查询(以及需要进行大量排序的查询)将不必命中磁盘。
下次查询开始对您执行此操作时,请登录MySQL,执行“显示完整进程列表”并记录其中的内容。如果对查询发出的EXPLAIN或DESCRIBE发生缓慢,它是什么?它是否包含它将进入临时表的注释?
当MySQL开始使用临时表时,事情可能会感觉它们正在消亡,特别是如果你没有快速磁盘。