Найдено статью с заголовком "синтаксис MySQL NOLOCK"
http://itecsoftware.com/with-nolock-table-hint-equivalent-for-mysql
SQL Server С (NOLOCK) выглядит следующим образом:
SELECT * FROM TABLE_NAME WITH (nolock)
Чтобы добиться того же с MySQL, мы измените режим изоляции сеанса с помощью команды SET SESSION
.
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ;
Вы можете achive же путем ниже также:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
COMMIT ;
Это заявление будет работать похож на WITH (NOLOCK) READ UNCOMMITTED
т.е. данные. Мы можем также установить уровень изоляции для всех соединений по всему миру:
SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
Кроме того, две системные переменные, связанные с изоляцией также уровня существуют в сервере MySQL:
SELECT @@global.tx_isolation; (global isolation level)
SELECT @@tx_isolation; (session isolation level)
Или установить уровень изоляции внутри транзакции :
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
GO
В воспламенителе кода вы можете обернуть свой запрос первым решением или воспользоваться глобальной опцией.
для справки вы можете использовать ниже код:
$this->db->query("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE");
$this->db->trans_start();
// your code
$this->db->trans_complete();
Update 1:
Вы можете просто установить уровень изоляции в запросе, прежде чем запускать ваши заявления. Ниже приведен простой PHP MySQLi код Tu использовать 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();
нужен образец кода в виде PHP и MySQL для взаимодействия с базой данных – Pankaj
см это может помочь Http: // StackOverflow.com/questions/917640/any-way-to-select-without-cause-locking-in-mysql – Linus