Mencari Transaksi yang Menyebabkan Keadaan "Menunggu Kunci Metadata Jadual"
Dalam MySQL, menemui mesej "Menunggu kunci metadata jadual" semasa Operasi DDL menunjukkan kunci yang dipegang oleh transaksi lain. Untuk menentukan transaksi penyebabnya, pertimbangkan kaedah berikut:
Versi MySQL < 5.7.3
-
SHOW ENGINE INNODB STATUS G: Arahan ini memaparkan bahagian "TRANSAKSI", menyenaraikan transaksi terbuka.
Jadual SKEMA_MAKLUMAT
-
PILIH * DARI INNODB_LOCK_WAITS: Mendapat semula maklumat tentang semua penantian kunci.
-
PILIH * LOCK_STRX_LOCK_LOCK_INNODB. (PILIH BLOCKING_TRX_ID DARIPADA INNODB_LOCK_WAITS): Mengenal pasti urus niaga yang menyekat.
- PILIH * DARI INNODB_LOCKS DALAM SERTAI INNODB_LOCK_WAITS ON (INNODB_LOCKS.XLOCK_WDB_LOCKS.XLOCK_TRX. 🎜> Menyenaraikan maklumat yang sama seperti pertanyaan sebelumnya.
- PILIH * DARI INNODB_LOCKS DI MANA LOCK_TABLE = db_name.table_name: Menempatkan kunci pada jadual tertentu.
- SELECT TRX_ID, TRX_REQUESTED_THREQUESTED_LOCK_TRX_REQUESTED_TRX_MY_LOCK FROM INNODB_TRX WHERE TRX_STATE = 'LOCK WAIT': Menyenaraikan urus niaga menunggu kunci.
Rujukan:
Penyelesaian Masalah MySQL: What Toubleshooting Lakukan Apabila Pertanyaan Tidak Berfungsi, Bab 6 - Halaman 96-
Atas ialah kandungan terperinci Bagaimana untuk Mengenalpasti Transaksi Memegang \"Menunggu Kunci Metadata Jadual\" dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn