Mysql

MySQL 5.6 中的 ALTER TABLE 阻塞

  • December 5, 2014

我對 MySQL 5.6 主從設置有疑問。如果我要使用 ALTER TABLE SQL 查詢修改主架構的模式,那麼當從伺服器也嘗試執行該 ALTER TABLE 語句時,它是否會阻止對該特定表的所有讀取,直到該查詢完成執行?我確信並非所有表都會被阻塞,但我擔心被 ALTER-ed 的表本身是否會被阻塞。

我對我的問題進行了一些研究,並指的是http://blogs.oracle.com/mysqlinnodb/entry/online_alter_table_in_mysql上的線上ALTER TABLE 操作

我從其他人那裡聽說,如果它執行 5.1 MySQL,從屬設備在這種情況下不會阻止讀取,但它會阻止 5.6 嗎?

是的,數據庫中的所有表都是 InnoDB

謝謝!

如果您的表是 InnoDB 格式,請嘗試 pt-online-schema-change(來自 Percona Toolkit),例如:

pt-online-schema-change
   --charset utf8 \
   --alter 'ADD COLUMN baz INT UNSIGNED' \
   --execute -h db-test -u username -p password D=foo,t=bar

引用自:https://dba.stackexchange.com/questions/84019