MySQL 9.0 版本注意事項
本節說明 MySQL 如何回應磁碟空間滿溢錯誤(例如「裝置上沒有剩餘空間」),以及配額超出錯誤(例如「寫入失敗」或「達到使用者區塊限制」)。
本節與寫入 MyISAM
表格有關。 它也適用於寫入二進位日誌檔案和二進位日誌索引檔案,但應將對「資料列」和「記錄」的參考理解為表示「事件」。
當發生磁碟空間滿溢的情況時,MySQL 會執行以下操作:
它每分鐘檢查一次,查看是否有足夠的空間來寫入目前的資料列。 如果有足夠的空間,它會像什麼都沒發生一樣繼續執行。
每 10 分鐘,它會將一個項目寫入日誌檔,警告磁碟空間滿溢的情況。
為了緩解此問題,請採取以下措施:
要繼續,您只需釋放足夠的磁碟空間即可插入所有記錄。
或者,要中止執行緒,請使用 mysqladmin kill。 執行緒會在下次檢查磁碟(在一分鐘內)時中止。
其他執行緒可能會等待導致磁碟空間滿溢情況的表格。 如果您有數個「鎖定」執行緒,則中止正在等待磁碟空間滿溢情況的一個執行緒,可使其他執行緒繼續執行。
當您使用 REPAIR TABLE
或 OPTIMIZE TABLE
,或者在 LOAD DATA
或 ALTER TABLE
陳述式之後批量建立索引時,上述行為會例外。 所有這些陳述式都可能會建立大型暫存檔案,如果放任不管,會對系統的其餘部分造成很大的問題。 如果在 MySQL 執行這些操作時磁碟空間滿溢,它會移除大型暫存檔案並將表格標記為損毀。 例外情況是,對於 ALTER TABLE
,舊表格會保持不變。