MySQL 5.6聲稱DDL操作將以最大可能的併發性運行。 http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html在MySQL 5.6「Alter Table Add Columns」中,不允許DML併發
「允許並行DML?」列顯示哪些操作可以在線完全執行;首選值是「是」。您可以指定LOCK = NONE來聲明在DDL期間允許完全併發,但是如果可能,MySQL會自動允許這種併發級別。當允許併發DML時,也總是允許併發查詢。
但是我剛剛嘗試了一個「ALTER TABLE ADD COLUMN ...」語句,並且在此操作過程中該表出現鎖定。 當我重新聲明並添加「,ALGORITHM = inplace,LOCK = none」時,它花費更長時間,但表格仍然可用。我認爲MySQL會爲特定語句使用最高級別的併發性,爲什麼我必須明確指定它們?