MySql鎖相關的理解

總結一下自己理解的MySql鎖相關的理解

mysql版本爲5.7,引擎爲innodb,這個引擎在工作中最常用

1.共享鎖

   共享鎖又叫讀鎖,共享鎖就是多個事務對於同一數據可以共享一把鎖,都能訪問到數據,但是隻能讀不能修改數據。

2.排他鎖

   排他鎖與任何鎖互斥,排他鎖又叫寫鎖。

   意思是當前事務加上鎖之後,其他的事務不能繼續在當前的數據上加鎖。

   innoDB引擎會默認在數據更新、插入、刪除操作的時候加上排他鎖。

3.間隙鎖

   間隙鎖會出現在範圍查詢的時候,而不是等於查詢的時候。範圍查詢時,innoDB會對這個範圍的數據加鎖,在這個範圍內的有些數據索引是不存在的,innoDB會對這一部分不存在的索引數據加鎖。

select * from lock_demo  where id between 5 and 10 

4.自增鎖

   自增鎖是一種特殊的表級別鎖。最簡單的情況,如果一個事務正在往表中插入記錄,所有其他事務的插入必須等待,以便第一個事務插入的行,是連續的主鍵值。

5.還有其他幾種鎖,本人沒有深入的去涉及研究

   分別是:記錄鎖、臨鍵鎖、意向鎖。

   還有一種叫插入意向鎖。

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