作為一名DBA,對數(shù)據(jù)庫進(jìn)行DDL操作非常多,如添加索引,添加字段等等。對于MySQL數(shù)據(jù)庫,DDL支持的并不是很好,一不留心就導(dǎo)致了全表被鎖,經(jīng)常搞得剛?cè)腴T小伙伴很郁悶又無辜,不是說MySQL支持Online DDL么,不是說不會(huì)鎖表的么?是的,令人高興的是從MySQL5.6開始就支持部分DDL Online操作了,但并不是全部喔,今天這里就對我們常用的DDL進(jìn)行總結(jié)和說明,讓操作DDL的小伙伴從此做到心中有數(shù),得心應(yīng)手,讓老板們再也不用擔(dān)心我們做DDL咯。

我自己遵守的一條黃金準(zhǔn)則:DDL永遠(yuǎn)不要在業(yè)務(wù)高峰期間執(zhí)行。

環(huán)境說明:本次的測試服務(wù)器配置如下

      CPU:32 cores
      MEM:128G
      DISK: SSD(固態(tài)硬盤)
      MySQL版本:5.6.27以上

一、MySQL執(zhí)行DDL原理

     MySQL各版本,對于DDL的處理方式是不同的,主要有三種: