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

Mak*_*cha 6 mysql sql select diskspace

我有一组非常复杂的SELECT查询,它们占用了大量的磁盘空间(我df -h在运行时看到了这一点).有没有办法启动之前估计查询所需的临时磁盘空间?

Zak*_*Zak 2

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

请参阅此处的文档解释:

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

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

  • 答案太笼统了,我知道什么是“解释”。我需要一种方法(或公式)来估计临时磁盘空间利用率。 (2认同)