鎖的粒度劃分主要有三種:表級鎖、頁級鎖和行鎖
1.表級鎖:
對整張表加鎖,粒度最大,加鎖的并發度最低,會導致其他事務無法訪問該表,只有當前事務提交或者回滾后才能釋放鎖。表級鎖適用于對表進行全表操作的場景,如表的重建、初始化等。
mysql5.5之前默認使用MYISAM引擎
2.頁級鎖:
對數據表中的一頁加鎖,粒度介于表級鎖和行鎖之間,可以提高并發度,但是會導致鎖沖突的概率增加。頁級鎖適用于對表中大部分數據進行操作的場景。
3.行鎖:
對數據表中的一行加鎖,粒度最小,加鎖的并發度最高,可以最大程度地支持并發操作。行鎖適用于對表中少量數據進行操作的場景。
mysql5.5之前默認使用InnoDB引擎
4.注意:
需要注意的是,鎖的粒度越小,并發度越高,但是鎖的開銷也越大,因此需要根據具體場景選擇合適的鎖粒度