mysql 在innodb 引擎下手動添加 共享鎖與排他鎖

insert ,update , delete,innodb 會自動給對應的哪一行加行級別排他鎖

select 查詢的時候 ,innodb 啥鎖都不會加,因爲innodb,默認隔離級別是可重複讀, 即 通過mvcc併發訪問控制機制,所以多個事務隨便讀一個數據,一般不會有衝突的,因爲大家都是讀自己的快照的,不涉及到鎖的問題.

innodb 從來不會自己主動加共享鎖,但可以通過手動添加

  1. 手動添加共享鎖:  select * from table where id=1 lock in share mode ; 這樣就給當前的這一行加了共享鎖,其他的事務就不能修改這行數據了.
  2. 說動添加排他鎖: select * from table where id=1 for update ;  這樣就給當前的這一行加了排他鎖,你準備修改,別的事務就不能修改,別的事務的修改會夯住. 要慎用

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章