如果MySQL没有足够的临时表空间会发生什么?

时间:2015-02-27 13:10:03

标签: mysql

由于一段时间(可能是两周),MySQL 5.5不时被卡住了。这意味着服务器负载变得非常高,所有查询都被冻结并且#connections达到了限制。我需要重新启动MySQL服务器来解决这个问题。

也许这只是一个死锁,但由于应用程序逻辑没有任何改变,我不这么认为。 我想知道如果没有足够的磁盘空间来填充临时表会发生什么。这可能是此服务器上的问题。文档http://dev.mysql.com/doc/refman/5.5/en/full-disk.html表示设备上没有剩余空间错误消息,但我没有在mysql-error.log上找到这个。此消息是否也会报告临时表?

在slow-query.log中我发现了这个:

# Query_time: 61229.230881  Lock_time: 0.000183 Rows_sent: 0  Rows_examined: 193600429837

对于此查询,需要一个大临时表。我不确定这是在重启MySQL服务器之前还是之后。我只知道这是在最后一个问题中。

1 个答案:

答案 0 :(得分:0)

不要担心磁盘空间,如果这是问题,MySQL会通知你。

需要检查193600429837行的查询可能会在十年或两年内完成。不幸的是,您的服务器足够强大,可以支持此卷,并且会尽力完成查询。

重写有问题的查询,或尝试添加一两个索引(另请参阅:EXPLAIN)。