Membetulkan "Tamat masa menunggu kunci melebihi; cuba mulakan semula transaksi" untuk Jadual MySQL "Tersekat"
Jadual MySQL boleh menjadi "terperangkap" disebabkan oleh pelbagai sebab, seperti pertanyaan lama atau urus niaga tanpa komitmen. Satu mesej ralat biasa yang dikaitkan dengan ini ialah "Kunci tamat masa menunggu melebihi; cuba mulakan semula transaksi."
Isu ini boleh berlaku apabila pertanyaan dilaksanakan tanpa klausa WHERE yang betul, mengakibatkan kemas kini berulang pada lajur yang sama untuk semua baris dalam jadual. Selain itu, kemas kini indeks yang kerap boleh menambahkan masalah.
Untuk menyelesaikan isu ini dan menyahbekukan jadual, adalah perlu untuk mengenal pasti dan menamatkan urus niaga yang tersekat. Langkah-langkah berikut boleh diambil:
Gunakan SENARAI PROSES TAYANGAN; perintah untuk menyenaraikan semua utas yang sedang berjalan dalam antara muka baris arahan MySQL atau phpMyAdmin. Kenal pasti mana-mana urutan dengan masa pelaksanaan yang sangat tinggi.
Untuk urutan dengan masa pelaksanaan yang berlebihan, gunakan arahan KILL diikuti dengan ID benang yang sepadan. Ini akan menamatkan sambungan untuk utas itu. Dalam phpMyAdmin, terdapat butang "Bunuh" mudah yang boleh digunakan untuk tujuan ini.
Untuk mematikan thread 115 daripada baris arahan, masukkan yang berikut:
KILL 115;
Ini akan menamatkan transaksi yang tersekat dan membuka kunci meja, membenarkan operasi biasa disambung semula.
Atas ialah kandungan terperinci Bagaimana untuk Betulkan \'Tamat masa menunggu kunci melebihi; cuba mulakan semula transaksi\' untuk Jadual MySQL \'Terperangkap\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!