mysql加鎖讀

不要亂摸發表於2018-01-10

Locking Reads

在同一個事務中,如果你先查詢資料,隨後對相關資料進行插入或修改,那麼在標準的SLELECT中不會給出足夠的保護。在你查詢期間另一個事務可以更新或者刪除相同的行。InnoDB提供兩種型別的加鎖讀:

  • SELECT ... LOCK IN SHARE MODE

    給讀到的每一行都加共享鎖。其它的會話也可以讀到這些行,但是它們不能修改這些行,直到你的事務提交。如果這些行被其它事務修改了但尚未提交,你的              查詢必須等待直到那個事務結束。

  • SELECT ... FOR UPDATE

    對於檢索到的沒一個索引記錄,鎖定這些行和與之關聯的索引記錄

 

其實,前者是加意向共享鎖,後者加意向排它鎖。

 

相關文章