Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Data daripada Pangkalan Data Hamba MySQL Tanpa Mengunci?

Bagaimana untuk Memilih Data daripada Pangkalan Data Hamba MySQL Tanpa Mengunci?

DDD
DDDasal
2024-12-13 05:02:09548semak imbas

How to Select Data from a MySQL Slave Database Without Locking?

Memilih Data Tanpa Mengunci dalam MySQL

Apabila menanyakan jadual yang diubah suai secara aktif oleh peristiwa, ada kemungkinan untuk menemui kunci jadual, yang boleh prestasi impak. Adakah terdapat cara untuk melaksanakan pernyataan pilihan dalam MySQL yang tidak menyebabkan kunci sedemikian?

Penyelesaian untuk Pangkalan Data Hamba

Penyelesaian yang disebut dalam artikel bertajuk "MYSQL WITH NOLOCK" tidak boleh digunakan dalam kes ini kerana ia adalah pangkalan data hamba. Selain itu, menetapkan tahap pengasingan transaksi kepada READ-UNCOMMITTED akan mengakibatkan ralat pada pangkalan data hamba yang dikonfigurasikan untuk pengelogan binari berasaskan STATEMENT.

Metodologi Khusus MySQL

Untuk mengelakkan penguncian semasa memilih data pada pangkalan data hamba MySQL, anda boleh menggunakan yang berikut pendekatan:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT COUNT(online.account_id) cnt from online;
COMMIT;

Kaedah ini menetapkan sementara tahap pengasingan transaksi kepada READ UNCOMMITTED, yang membolehkan pernyataan pilih diteruskan tanpa mendapatkan kunci. Walau bagaimanapun, adalah penting untuk diingat bahawa tetapan ini hanya boleh digunakan dalam transaksi dengan penyata COMMIT yang berikutnya.

Cadangan Penambahbaikan

Sebagai alternatif, anda boleh mempertimbangkan untuk menggunakan sintaks berikut yang dicadangkan oleh Michael Mior:

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT COUNT(online.account_id) cnt from online;
COMMIT;

Atas ialah kandungan terperinci Bagaimana untuk Memilih Data daripada Pangkalan Data Hamba MySQL Tanpa Mengunci?. 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