MySQL LOCK TABLE
鎖定用於解決併發問題。僅在執行事務時才需要鎖定,該事務首先從資料庫讀取值,然後將該值寫入資料庫。自包含插入,更新或刪除操作永遠不需要鎖。
有兩種鎖可用
READ LOCK - 當使用者只從表中讀取時。
WRITE LOCK - 當使用者同時讀取和寫入表格時。
當使用者在表上儲存 WRITE LOCK
時,沒有其他使用者可以讀取或寫入該表。當使用者在桌面上持有 READ LOCK
時,其他使用者也可以讀取或保持 READ LOCK
,但沒有使用者可以在該桌面上寫或持有 WRITE LOCK
。
如果預設儲存引擎是 InnoDB,MySQL 會自動使用行級鎖定,這樣多個事務可以同時使用同一個表進行讀寫,而不會讓對方等待。
對於除 InnoDB 之外的所有儲存引擎,MySQL 使用表鎖定。
有關表鎖的更多詳細資訊,請參見此處