Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Ubah tabel tanpa mengunci seluruh tabel

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...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ukuran MySQL VARCHAR?

  2. Pulihkan Basis Data di WAMP

  3. dpkg:paket pemrosesan kesalahan mysql-server (masalah ketergantungan)?

  4. Tidak dapat menginstal flask-sqlalchemy mysql-python

  5. Melewati larik ke kueri menggunakan klausa WHERE