MySQL事務鎖的種類主要分為兩種,即行級鎖和表級鎖。
- 行級鎖:行級鎖是針對表中的每一行數據進行加鎖的方式,只有操作到對應的行數據時才會加鎖。常見的行級鎖有:
- 共享鎖(Shared Lock):多個事務可以同時持有共享鎖,但是互斥鎖(排它鎖)會阻止共享鎖的獲取。共享鎖適用于讀操作。
- 互斥鎖(Exclusive Lock):事務在修改某一行數據時需要獲取互斥鎖,其他事務無法同時獲取相同行的互斥鎖。適用于寫操作。
- 表級鎖:表級鎖是對整個表進行加鎖的方式,當事務需要修改表中的任何行數據時,都需要先獲取表級鎖。常見的表級鎖有:
- 表級讀鎖(Read Lock):多個事務可以同時持有表級讀鎖,不會阻止其他事務同時持有表級讀鎖。適用于讀操作。
- 表級寫鎖(Write Lock):事務在修改表中任意行數據時需要獲取表級寫鎖,其他事務無法同時獲取表級寫鎖。適用于寫操作。
除了上述常見的行級鎖和表級鎖外,MySQL還支持更細粒度的鎖,如間隙鎖、意向鎖等,用于提供更高效的并發控制。