Sql查詢時 會因之前的操作而做lock
因此會有些delay的等待
加了WITH (nolock)就不會理會transaction lock
而直接回覆查詢資料,因而提升回覆速度
http://dev.mysql.com/doc/r efman/4.1/ en/interna l-locking. html
References
因此會有些delay的等待
加了WITH (nolock)就不會理會transaction lock
而直接回覆查詢資料,因而提升回覆速度
- MSSQL
但會有dirty read,所以較不重要資料才可以這麼用SELECT * FROM TABLE WITH (nolock)
先在DB打開Snapshot功能,再用command or connection string 控制isolation level。
PHP的mssql server driver 不支援 connection string控制isolation level,因此只能用sql command 或者在DB打開RCSI (READ COMMITTED SNAPSHOT isolation),全部查詢就會在此isolation level
- MySQL
- 利set session
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
SELECT * FROM TABLE_NAME ;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ; - inside a transaction
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
GO
- 設定global variable
SELECT @@global.tx_isolation; (global isolation level)
SELECT @@tx_isolation; (session isolation level)
- 利set session
http://dev.mysql.com/doc/r
References
沒有留言:
張貼留言