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

Menjatuhkan meja membuat MySQL hang

Waiting for table metadata lock
drop table tableA name

SELECT l1.lat, l1.lon, l2.zipcode FROM tableA l1, tableBl2 where l1.lat = l2.latitude and l1.lon = l2.longitude limit 10

Jika ini meja Anda, lihat tautan ini

Anda memiliki kebuntuan implisit. Bunuh transaksi lain untuk melepaskan drop, atau matikan drop untuk melepaskan transaksi lainnya.

Anda dapat menggunakan BUNUH thread_id, di sql_plus.

Saya menambahkan informasi lebih lanjut karena saya menemukan pengalaman menarik lainnya.

Metadata Kunci mati mungkin sama-sama terjadi antara operasi ddl pada tabel tertentu (drop , alter ...) dan pilih permintaan di tabel itu.

Ya, select .

Jadi, jika Anda mengulang kursor di mysql (atau php, misalnya dengan pdo::fetch ), dan Anda menjalankan pernyataan ddl pada tabel yang sama, Anda akan menemui jalan buntu.

Salah satu solusi untuk skenario atipikal ini adalah melepaskan kunci implisit dengan commit pernyataan secara sistematis setelah pernyataan terpilih diambil sepenuhnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL TINYBLOB vs LONGBLOB

  2. Mengambil baris tunggal, kolom tunggal dengan PDO

  3. Bergabunglah dengan dua tabel (dengan hubungan 1-M) di mana tabel kedua perlu 'diratakan' menjadi satu baris

  4. SQL Error 1630:Fungsi SUBSTRING tidak ada.. ya?

  5. Bagaimana Memperbaiki Masalah Umum dengan Database MySQL?