MySQL LOCK TABLE

鎖定用於解決併發問題。僅在執行事務時才需要鎖定,該事務首先從資料庫讀取值,然後將該值寫入資料庫。自包含插入,更新或刪除操作永遠不需要鎖。

有兩種鎖可用

READ LOCK - 當使用者只從表中讀取時。

WRITE LOCK - 當使用者同時讀取和寫入表格時。

當使用者在表上儲存 WRITE LOCK 時,沒有其他使用者可以讀取或寫入該表。當使用者在桌面上持有 READ LOCK 時,其他使用者也可以讀取或保持 READ LOCK,但沒有使用者可以在該桌面上寫或持有 WRITE LOCK

如果預設儲存引擎是 InnoDB,MySQL 會自動使用行級鎖定,這樣多個事務可以同時使用同一個表進行讀寫,而不會讓對方等待。

對於除 InnoDB 之外的所有儲存引擎,MySQL 使用表鎖定。

有關表鎖的更多詳細資訊,請參見此處