Jawaban singkat:Untuk MySQL <5.6 kunci diperlukan. Mulai 5.6 dan menggunakan InnoDB, mengunci tidak diperlukan untuk banyak ALTER TABLE
operasi termasuk menambahkan kolom
.
Jika Anda menggunakan MySQL 5.5 atau lebih lama, itu akan mendapatkan kunci baca untuk seluruh operasi dan kemudian kunci tulis singkat di akhir.
Dari dokumentasi MySQL untuk ALTER TABLE ...
Artinya, saat menambahkan kolom yang dibaca mengunci tabel untuk sebagian besar operasi, lalu mendapat kunci tulis di akhir.
MySQL 5.6 menambahkan DDL Online ke InnoDB yang mempercepat dan meningkatkan banyak hal seperti mengubah tabel dan indeks. Menambahkan kolom ke tabel tidak lagi memerlukan kunci tabel kecuali mungkin kunci eksklusif singkat di awal dan akhir operasi .
Itu harus terjadi secara otomatis, tetapi untuk memastikan set ALGORITHM=inplace
dan LOCK=none
ke ALTER TABLE
pernyataan.
Ada satu pengecualian...