2012-07-06 68 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

相關問題