2012-07-06 67 views
0

我有一个巨大的表,包含1400万+行。所有的varchar数据。我正在尝试运行此查询。我很快得到输出。限制仅限于800K记录。不正确的密钥文件在mysql中的表错误

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; 

当我把上限为1万条记录,我得到这个错误

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

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

回答

1

我想这应该帮助 -

您可以使用DF -h检查\ tmp目录是否在自己的分区,并 多少空间分配给它。

如果是在自己的分区和短的空间,您可以:

(一)修改/ tmp目录,以便其分区之前有更多的空间(通过 重新分配或将其移动到主分区 - (b) 更改MySql配置,使其在不同的分区上使用不同的临时文件夹,例如/ var/tmp

请参阅herethis

+0

谢谢我也这么做。我还将关键缓冲区大小从16M增加到256M – Shades88 2012-07-07 19:06:40

相关问题