今天一臺win2003的統(tǒng)計(jì)服務(wù)器,出現(xiàn)了統(tǒng)計(jì)失敗,mysql錯誤日志顯示:
mysqld-nt.exe: Sort aborted,大概是說 mysql排序中斷。google了一下:
Sort aborted意思是排序取消。
Sort在電腦用語有排序的意思
此出錯信息是指排序過程中(從數(shù)據(jù)庫從讀取數(shù)據(jù)默認(rèn)的是order by id asc),系統(tǒng)難以承受了。(比如數(shù)據(jù)量特別大等情況)
解決方法有:優(yōu)化sql語句、檢查內(nèi)存使用情況、MYSQL 配置文件中的 sort_buffer_size 、read_rnd_buffer_size、read_buffer_size 設(shè)置大點(diǎn)使用其他方法,比如存儲方法等。
也有可能是數(shù)據(jù)庫損壞等情況引起的。操作系統(tǒng)的問題不大。
重新統(tǒng)計(jì),仍然這個錯誤,懷疑是昨天新上的一個java應(yīng)用內(nèi)存跑得太高了,導(dǎo)致mysql沒有足夠的內(nèi)存,調(diào)小java的運(yùn)行內(nèi)存,重試,仍然錯誤。
統(tǒng)計(jì)頁面報(bào)了一個錯誤提醒了我,大概是說寫入臨時表失敗。
編輯 my.ini,修改mysql的臨時文件目錄:
tmpdir = E:\mysql_tmp
重啟mysql
OK了,NND的編輯部門那MM總是催,不爽她一句。