nolock 是 SQL Server 特有的功能。
例如:對於一個表 A,更新了一行,還沒有commit,這時再select * from A 就會死鎖。用select * from A(nolock)可以防止死鎖,nolock可以忽略鎖,直接從數據庫讀取數據。這意味着可以避開鎖,從而提高性能和擴展性。但同時也意味着代碼出錯的可能性存在。你可能會讀取到運行事務正在處理的無須驗證的未遞交數據。 這種風險可以量化。
mysql 沒有這方面問題,對於一個表 A,更新了一行,還沒有commit, SELECT * FROM A, 將查詢到更新以前的原始數據記錄,而不會出現死鎖問題。