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