Mengelakkan 'Kebuntuan Ditemui Semasa Cuba Mengunci' dalam MySQL
Isu:
Seorang pembangun menemui 'Kebuntuan terputus-putus ditemui apabila cuba mendapatkan kunci; cuba mulakan semula ralat transaksi apabila menjalankan INSERTs ke dalam jadual InnoDB yang menjejaki aktiviti pengguna dalam talian. Jadual dikemas kini pada muat semula halaman dan dikosongkan setiap 15 minit oleh tugas cron.
Pertanyaan dalam Soalan:
Penyelesaian:
Untuk menyelesaikan kebuntuan, adalah penting untuk memastikan transaksi mengunci kunci dalam susunan yang konsisten. Berikut ialah langkah yang disyorkan:
Kunci Pesanan dalam Pertanyaan:
Isih Padam Pernyataan:
DELETE FROM onlineusers WHERE id IN ( SELECT id FROM onlineusers WHERE datetime <= now() - INTERVAL 900 SECOND ORDER BY id ) u;
Mekanisme Cuba Semula:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Ralat 'Kebuntuan Ditemui Semasa Mencuba Mengunci' dalam Sistem Penjejakan Pengguna Dalam Talian MySQL Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!