MySQL提供了四種事務(wù)級別:READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ和SERIALIZABLE,默認(rèn)的事務(wù)級別是REPEATABLE READ。
調(diào)整事務(wù)級別的方式是使用如下語句:
SET TRANSACTION ISOLATION LEVELlevel;其中,level指定要設(shè)置的事務(wù)級別,可以是上述四種之一。
悲觀鎖是指在數(shù)據(jù)被訪問時,將其鎖定,確保其它事務(wù)無法修改或刪除該數(shù)據(jù)。使用悲觀鎖需要將事務(wù)隔離級別設(shè)置為SERIALIZABLE。
MySQL使用以下語句開啟悲觀鎖:
SELECT * FROMtableWHEREconditionFOR UPDATE;其中,table表示要鎖定的表,condition表示查詢條件。FOR UPDATE會鎖定查詢結(jié)果中的行,確保其它事務(wù)無法修改或刪除這些行。
如果要鎖定整個表,可以使用以下語句:
LOCK TABLEStableWRITE;其中,WRITE表示要鎖定整個表,并且是寫鎖。