文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  線上 DDL 失敗條件

17.12.7 線上 DDL 失敗條件

線上 DDL 作業失敗通常是由於下列其中一個條件

  • ALGORITHM 子句指定與特定 DDL 作業類型或儲存引擎不相容的演算法。

  • LOCK 子句指定與特定 DDL 作業類型不相容的低程度鎖定 (SHAREDNONE)。

  • 在等待資料表上的互斥鎖時發生逾時,這在 DDL 作業的初始和最終階段可能需要短暫的時間。

  • 當 MySQL 在建立索引期間將暫時排序檔案寫入磁碟時,tmpdirinnodb_tmpdir 檔案系統的磁碟空間不足。如需詳細資訊,請參閱第 17.12.3 節,「線上 DDL 空間需求」

  • 此操作需要很長時間,而且並行的 DML 對資料表進行了大量修改,導致暫時線上記錄的大小超過 innodb_online_alter_log_max_size 設定選項的值。此條件會導致 DB_ONLINE_LOG_TOO_BIG 錯誤。

  • 並行的 DML 對資料表進行了允許原始資料表定義的變更,但不允許新的定義。此作業只會在最後才失敗,也就是當 MySQL 嘗試套用並行 DML 陳述式的所有變更時。例如,您可能會在建立唯一索引時將重複值插入到資料行中,或者您可能會在資料行上建立主鍵索引時將 NULL 值插入到資料行中。並行 DML 所做的變更會優先,而且 ALTER TABLE 作業會有效地回滾