本文介紹的內容與寫入MyISAM表有關。它也適用於寫入二進制日志文件和二進制索引文件,但對“row”和“record”的應用應被視為“event”。
出現磁盤滿狀況時,MySQL將:
每分鐘檢查一次,查看是否有足夠空間寫入當前行。如果有足夠空間,將繼續,就像什麼也未發生一樣。
每10分鐘將1個條目寫入日志文件,提醒磁盤滿狀況。
為了減輕問題,可采取下述措施:
要想繼續,僅需有足夠的磁盤空間以插入所有記錄。
要想放棄線程,必須使用MySQLadmin kill。下次檢查磁盤時將放棄線程(1分鐘)。
其他線程可能會正在等待導致磁盤滿狀況的表。如果有數個“已鎖定”的線程,殺死正在磁盤滿狀況下等待的某一線程,以便允許其他線程繼續。
對前述行為的例外是,當你使用REPAIR TABLE或OPTIMIZE TABLE時,或當索引是在LOAD DATA INFILE或ALTER TABLE語句後、在批操作中創建的。所有這些語句能創建大的臨時文件,如果保留這些文件,會導致系統其他部分出現大問題。如果在MySQL執行這類操作的同時磁盤已滿,它將刪除大的臨時文件,並將表標注為崩潰。但對於ALTER TABLE例外,舊表保持不變。