2009-02-20 56 views
0

我们的MySQL服务器表现得很奇怪 - 在一个表上执行大量查询将会锁定它,即使它在完全不相关的表上(如SELECT的主键)也不会被其他查询响应,INSERT,或者甚至EXPLAIN) - 它只会等待重头人完成。

我真的没有想法可能会导致什么 - 有大量的免费线程,CPU处于空闲/等待状态,网络是免费的,有足够的内存......等等

任何人有什么想法什么寻找?通用mysql冻结

+0

1.“非常”锁定的意思是什么? :)是否有其他查询_sometime_送达? 2.这个沉重的查询 - 它使用大量的连接吗?你能告诉我更多一点吗? – 2009-02-20 10:14:15

回答

0

MySQL有多少内存?我的猜测是,它不得不去磁盘临时表,这可能是杀手。您的my.cnf/my.ini文件中的innodb_buffer_pool_size有多大?通过增加(增加内存使用量)较小的查询(以及需要进行大量排序的查询)将不必打击磁盘。

下一次查询开始执行此操作时,请登录到MySQL,执行“显示完整进程列表”并记录其中的内容。如果您对速度较慢的查询发出EXPLAIN或DESCRIBE,它是什么?它是否包含它将要临时表的提示?

当MySQL开始使用临时表时,事情可能会感觉他们正在死亡,尤其是如果您没有快速磁盘。