Pertanyaan SELECT Tidak Mengunci dalam MySQL
Dalam MySQL, penguncian yang kerap semasa operasi SELECT boleh timbul apabila jadual diubah suai secara serentak. Untuk mengurangkan isu ini, pertimbangkan untuk menggunakan teknik yang membenarkan bacaan tanpa kunci.
Menggunakan READ UNCOMMITTED
Salah satu pendekatan ialah menetapkan tahap pengasingan transaksi kepada READ UNCOMMITTED, yang membenarkan bacaan tanpa memperoleh kunci. Walau bagaimanapun, pilihan ini mungkin tidak sesuai untuk hamba kerana ia menjejaskan integriti data.
SQL Equivalent of WITH (NOLOCK)
Untuk kesetaraan dengan WITH (NOLOCK) klausa dalam Microsoft SQL Server, MySQL menawarkan pelbagai langkah proses:
Mulakan transaksi dengan READ UNCOMMITTED pengasingan:
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
Lakukan pertanyaan PILIH:
SELECT * FROM TABLE_NAME;
Tetapkan semula tahap pengasingan transaksi kembali kepada BOLEH DIULANG BACA:
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
Pelaksanaan Pertanyaan Tidak Mengunci Yang Diperbaiki
Michael Mior mencadangkan versi yang dipertingkatkan bagi pelaksanaan pertanyaan tidak mengunci:
Tetapkan tahap pengasingan transaksi kepada BACA TIDAK KOMITED:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
Lakukan pertanyaan PILIH:
SELECT * FROM TABLE_NAME ;
Lakukan transaksi:
COMMIT ;
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Pertanyaan SELECT Tidak Mengunci dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!