0

我有一个包含 1400 万行以上的大表。所有 varchar 数据。我正在尝试运行此查询。我很快得到输出。限制仅对 800K 记录设置。

SELECT *
FROM (SELECT unique_user_id, url, count(url) as url_visit_count, categories, count(categories) as count 
FROM ph_usertrack_data GROUP BY unique_user_id LIMIT 800000) a 
ORDER BY a.url_visit_count DESC LIMIT 100;

当我将限制设置为 100 万条记录时,出现此错误

Incorrect key file for table '/tmp/#sql_6663_0.MYI'; try to repair it

我的临时文件夹有很多空间,大约 100 GB,所以没有空间问题。为什么当我增加要处理的行数时会出现此问题?

4

1 回答 1

1

我认为这应该有所帮助-

您可以使用 df -h 检查 \tmp 是否在其自己的分区中,以及为其分配了多少空间。

如果它在自己的分区中并且空间不足,您可以:

(a) 修改 /tmp 使其分区有更多空间(通过重新分配或将其移动到主分区 - 例如,请参见此处) (b) 更改 MySql 配置,以便它在不同分区上使用不同的临时文件夹,例如 /变量/时间

请参考这里这个

于 2012-07-06T10:36:12.770 回答