mysql lock操作

發表於2019-05-11

MySQL LOCK 命令的語法如下

LOCK TABLE table1 locktype, table2 locktype ...

對一個表解鎖:

UNLOCK TABLE[S]

如:

lock table car write;

select * from car;

unlock table;

解鎖命令不需要額外的引數,UNLOCK 將解除該使用者所有的鎖。

因為 LOCK 鎖阻止其他使用者的訪問,所以應該儘可能快的執行 UNLOCK 命令。

MySQL LOCK 型別

MySQL LOCK 鎖的型別有四種,每一種鎖定的範圍不同:

READ

所有的使用者只能讀取被鎖表,不能對錶進行修改(包括執行 LOCK 的使用者),當表不存在 WRITE 寫鎖時 READ 讀鎖被執行。

READ LOCAL

除了允許 INSERT 命令以外執行的鎖與 READ 相同。

WRITE

除了當前使用者被允許讀取和修改被鎖表外,其他使用者的所有訪問被完全阻止。一個 WRITE 寫鎖被執行僅當所有其他鎖取消時。

LOW PRIORITY WRITE

低優先順序的讀鎖,在等待時間內(等待其他鎖取消),其他使用者的訪問將被認為是執行了 READ 讀鎖,因此將增加等待時間

 

注意:mysql的lock不能用於函式和儲存過程中

評論(1)

相關文章