大家好,我是藍胖子,mysql對大表(千萬級資料)的ddl語句,在生產上執行時一定要千萬小心,一不小心就有可能造成業務阻塞,資料庫io和cpu飆高的情況。今天我們就來看看如何針對大表執行ddl語句。
通過這篇文章,你能瞭解到下面的知識點,
mysql的ddl 經過了幾個版本的演進,Online DDL這個特性是在MySQL5.6.7開始支援,在此之前mysql執行ddl語句時,會生成新表,然後將原表資料複製到新表,整個過程是會阻塞DML語句的。
而online ddl 定義其實就是在執行ddl語句時,不會阻塞dml語句,那麼我們就稱這樣的ddl為online ddl。
ddl 的演演算法引數選項又分為 copy, Inplace, INSTANT ,其中copy就是之前傳統ddl執行的過程,會阻塞dml語句。Inplace, INSTANT 演演算法執行期間 都是可以執行DML語句的,所以我們稱使用這兩種演演算法的ddl語句為online ddl。