文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  線上 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 操作會有效回滾