MySQL5.6在線表結構變更(online ddl)總結

    MySQL從5.6.17以後,支持在線修改表結構操作(online ddl),即在變更表結構的過程中,不阻塞dml和dql操作.

  根據操作過程中是否需要表拷貝,online ddl可分爲下面兩大類:

1.需要表拷貝的 ddl 操作:
增加、刪除、重排列。
增加、刪除主鍵。
改變表的 ROW_FORMAT 或 KEY_BLOCK_SIZE屬性。
改變的字段的null狀態。
執行OPTIMIZE TABLE,優化表。
使用 FORCE 選項重建表。
使用ALTER TABLE ... ENGINE=INNODB 語句。
首次創建全文索引。


2.不需要表拷貝的 ddl 操作:
創建、增加、刪除普通索引。
創建第二個及後續的全文索引。
爲字段設置默認值。
改變auto-increment值。
刪除外鍵約束。
添加外鍵約束( 只有在foreign_key_checks=off時)
僅僅改變列的名稱
設置表的持續統計選項(STATS_PERSISTENT, STATS_AUTO_RECALC STATS_SAMPLE_PAGES)

特別說明:全文索引需要特別注意,創建了全文索引的表基本上不支持在線ddl操作。

具體說明參考mysql官方文檔:http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html#innodb-online-ddl-summary-grid



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章