Tìm thấy một bài viết với tiêu đề "cú pháp MySQL NOLOCK"
http://itecsoftware.com/with-nolock-table-hint-equivalent-for-mysql
SQL Server VỚI (NOLOCK) trông như thế này:
SELECT * FROM TABLE_NAME WITH (nolock)
Để đạt được cùng với MySQL, chúng tôi thay đổi chế độ cách ly phiên bằng cách sử dụng lệnh SET SESSION
.
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ;
Bạn có thể đạt được cùng bởi dưới đây cũng:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
COMMIT ;
Tuyên bố này sẽ làm việc tương tự như VỚI (NOLOCK) tức là READ UNCOMMITTED
dữ liệu. Chúng tôi cũng có thể thiết lập mức độ cách ly cho tất cả các kết nối toàn cầu:
SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
Bên cạnh đó, hai biến hệ thống liên quan đến cách ly cũng mức độ tồn tại trong máy chủ MySQL:
SELECT @@global.tx_isolation; (global isolation level)
SELECT @@tx_isolation; (session isolation level)
Hoặc thiết lập mức độ cô lập bên trong một giao dịch :
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
GO
Trong trình kích hoạt mã, bạn có thể bọc truy vấn bằng hai giải pháp đầu tiên hoặc bạn có thể sử dụng tùy chọn chung.
để bạn tham khảo bạn có thể sử dụng mã dưới đây:
$this->db->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE");
$this->db->trans_start();
// your code
$this->db->trans_complete();
Cập nhật 1:
Bạn chỉ có thể thiết lập mức độ cô lập trong một truy vấn trước khi bạn chạy các câu lệnh của bạn. Dưới đây là đơn giản mã php mysqli tu sử dụng 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();
Cần mẫu mã trong các hình thức của PHP và MySQL cho sự tương tác cơ sở dữ liệu – Pankaj
thấy điều này có thể giúp http: // stackoverflow.com/questions/917640/any-way-to-select-without-gây-lock-in-mysql – Linus