MySQL ialah perisian sumber terbuka berdasarkan sistem pengurusan pangkalan data hubungan. Ia digunakan secara meluas dalam aplikasi dan menyediakan pembangun cara yang boleh dipercayai untuk menyimpan data. Walau bagaimanapun, kerana MySQL terdedah kepada masalah mengekalkan jadual terkunci apabila memproses sejumlah besar data, pembangun perlu mengetahui cara untuk menanyakan jadual terkunci.
Apabila membangun menggunakan MySQL, anda sering menghadapi keperluan untuk menanyakan jadual yang dikunci. MySQL menyediakan pelbagai cara untuk menanyakan jadual yang sedang dikunci, termasuk menggunakan alat baris arahan, menyoal pandangan sistem dan menanyakan jadual skema maklumat. Setiap kaedah pertanyaan dibincangkan secara terperinci di bawah dan beberapa contoh diberikan.
SHOW PROCESSLIST;
Ini akan memaparkan senarai semua urutan MySQL yang sedang berjalan. Dalam senarai, anda boleh melihat maklumat berguna seperti ID, pengguna, hos, pangkalan data, arahan, masa dan status. Sebagai contoh, jika terdapat benang mengunci jadual bernama "table_name", anda boleh mencari medan "LOCK" dalam lajur "Command". Di samping itu, dalam lajur "Maklumat", anda boleh melihat pernyataan SQL yang dilaksanakan oleh pertanyaan.
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS WHERE LOCK_TABLE LIKE '%table_name%';
Dalam pernyataan pertanyaan ini, anda boleh menggantikan "nama_jadual" dengan nama jadual yang anda ingin tanya. Kenyataan ini mengembalikan semua baris dan jadual yang sedang dikunci oleh enjin InnoDB. Selain itu, anda boleh menanyakan paparan INFORMATION_SCHEMA.INNODB_LOCK_WAITS untuk mencari urutan menunggu sumber kunci.
SELECT * FROM information_schema.TABLES WHERE ENGINE = 'InnoDB' AND TABLE_NAME = 'table_name';
Dalam pertanyaan di atas, anda boleh menggantikan "nama_jadual" dengan nama jadual yang anda ingin tanya. Pertanyaan ini akan mengembalikan butiran pelayan jadual dan enjin storan yang ditentukan, dan jika jadual sedang dikunci, jenis kunci boleh dilihat dalam medan LOCK_TYPE.
Ringkasan:
MySQL boleh menanyakan jadual yang dikunci dengan cara yang berbeza. Gunakan alat baris perintah untuk menanyakan urutan yang sedang berjalan dan mencari urutan yang mengunci jadual tertentu untuk menentukan operasi yang sedang dijalankan, operasi menunggu dan operasi untuk mendapatkan kunci maklumat_schema.TABLES untuk mencari lajur "QUERY" untuk Mengenal pasti; sama ada pertanyaan yang dilaksanakan adalah mengenai kunci atau beberapa pertanyaan lain. Tetapi perlu diingat bahawa sebelum membuat perubahan, sila baca dokumentasi MySQL rasmi dengan teliti untuk memahami semua pengetahuan dan cadangan yang diperlukan untuk mengelakkan kerugian yang tidak perlu.
Atas ialah kandungan terperinci Bincangkan secara terperinci jadual terkunci pertanyaan mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!