Menemukan artikel dengan judul "Sintaksis MySQL NOLOCK "
http://itecsoftware.com/with-nolock-table-hint -setara-untuk-mysql
SQL Server WITH (NOLOCK) terlihat seperti ini:
SELECT * FROM TABLE_NAME WITH (nolock)
Untuk mencapai hal yang sama dengan MySQL, kami mengubah mode isolasi sesi menggunakan SET SESSION
perintah.
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ;
Anda juga dapat mencapai hal yang sama di bawah ini:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
COMMIT ;
Pernyataan ini akan bekerja mirip dengan WITH (NOLOCK) yaitu READ UNCOMMITTED
data. Kami juga dapat mengatur tingkat isolasi untuk semua koneksi secara global:
SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
Selain itu, dua variabel sistem yang terkait dengan isolasi juga level ada di server MySQL:
SELECT @@global.tx_isolation; (global isolation level)
SELECT @@tx_isolation; (session isolation level)
Atau atur tingkat isolasi di dalam transaksi:
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
GO
Dalam penyala kode, Anda dapat membungkus kueri Anda dengan dua solusi pertama atau Anda dapat menggunakan opsi global.
untuk referensi Anda, Anda dapat menggunakan kode di bawah ini:
$this->db->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE");
$this->db->trans_start();
// your code
$this->db->trans_complete();
Pembaruan 1:
Anda bisa mengatur tingkat isolasi dalam kueri sebelum menjalankan pernyataan Anda. Di bawah ini adalah kode php mysqli sederhana yang Anda gunakan isolation level read uncommited
//db connection
$mysqli = new mysqli('localhost', 'user', 'pass', 'db');
//set isolation level
$mysqli->query("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED");
//your Select Query
$results = $mysqli->query("SELECT * FROM tablename");
while($row = $results->fetch_assoc()) {
//some statements
}
// Frees the memory associated with a result
$results->free();
$mysqli->query("COMMIT");
// close connection
$mysqli->close();