在MySQL中,使用FOR UPDATE
可以對查詢結果進行行級鎖定,以防止其他會話修改或刪除這些行。FOR UPDATE
可以在SELECT
語句中使用,例如:
SELECT * FROM table_name FOR UPDATE;
這樣會對所有查詢結果行進行行級鎖定,保證其他會話無法修改或刪除這些行。
另一方面,可以使用LOCK TABLES
語句對整個表進行鎖定,以防止其他會話對整個表進行修改。例如:
LOCK TABLES table_name WRITE;
這會對整個表進行鎖定,其他會話無法對該表進行寫操作,但可以進行讀操作。
因此,FOR UPDATE
是對查詢結果行進行行級鎖定,而LOCK TABLES
是對整個表進行鎖定,兩者的鎖定粒度不同。