【问题标题】:Incorrect key file for table error in mysqlmysql中表错误的密钥文件不正确
【发布时间】:2012-07-06 09:15:29
【问题描述】:

我有一个包含 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,所以没有空间问题。为什么当我增加要处理的行数时会出现此问题?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    我认为这应该会有所帮助-

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

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

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

    也请参考herethis

    【讨论】:

    • 谢谢我也这样做了。我还将密钥缓冲区大小从 16M 增加到 256M
    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 2011-01-01
    • 2011-04-23
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    相关资源
    最近更新 更多