Apabila pernyataan DDL dilaksanakan, kunci tulis metadata MDL akan ditambahkan secara automatik pada jadual dan kunci tidak akan dilepaskan sehingga transaksi dilakukan. Tujuan kunci ini adalah untuk melindungi integriti struktur jadual dan ketekalan metadata.
Persekitaran pengeluaran adalah seperti yang ditunjukkan di bawah: sesi A membuka transaksi dan melaksanakan DQL
Sesi B ini perlu menambah indeks teks penuh pada dua medan jadual
Selepas pelaksanaan, didapati bahawa induk tersekat
.
Semak senarai proses yang berkaitan dan mendapati ia telah menunggu untuk mendapatkan kunci metadata mdl
select * from information_schema.processlist where info like '%alter table `bas_business_type_text` %'
Melihat situasi kunci meja, anda boleh lihat bahawa kunci baca dan tulis adalah saling eksklusif
SELECT * FROM sys.schema_table_lock_waits
Mengikut gesaan, laksanakan bunuh 11
Anda boleh lihat sesi B telah dilaksanakan dengan jayanya serta-merta
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan pengecualian kunci metadata jadual Menunggu dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!