如何估计 MySQL 查询所需的临时磁盘空间?

Posted

技术标签:

【中文标题】如何估计 MySQL 查询所需的临时磁盘空间?【英文标题】:How to estimate temporary disk space required for MySQL query? 【发布时间】:2013-04-22 11:14:35 【问题描述】:

我有一组相当复杂的SELECT 查询,它们使用大量磁盘空间(我在运行时从df -h 看到这一点)。有没有办法估计查询开始之前所需的临时磁盘空间?

【问题讨论】:

【参考方案1】:

您可以使用 EXPLAIN 关键字来描述您的连接将如何影响将连接在一起的行数。如果密钥尚不存在,这也将帮助您正确使用密钥。当它认为需要使用临时表(磁盘空间)时,Explain 会告诉您。根据要连接的行的大小,您可以粗略估计您的磁盘空间需求。

请参阅此处解释的文档:

http://dev.mysql.com/doc/refman/5.0/en/explain.html

不过,基本上,只需在您的选择查询前面加上“解释”即可获得信息输出。我相信您也可以在需要时以编程方式执行此操作,并在实际代码中使用结果,例如您需要计算(估计)大型查询运行时间并将其显示给用户,然后再继续。

【讨论】:

答案太笼统了,我知道explain是什么。我需要一种估计临时磁盘空间利用率的方法(或公式)。

以上是关于如何估计 MySQL 查询所需的临时磁盘空间?的主要内容,如果未能解决你的问题,请参考以下文章

记录一次mysql执行异常(磁盘空间)

怎么修改mysql数据库临时表空间大小

mysql 临时空间不足怎么办

分区持久区域的每个成员所需的存储空间

使用 Phonegap,我如何检查剩余的可用磁盘空间?

mysql 查询啥情况下使用tmp