https://www.cnblogs.com/boblogsbo/p/5602122.html
mysql鎖機制
①表級鎖
②行級鎖
共享鎖(讀鎖):簡稱S鎖,
多個事務對于同一數據可以共享一把鎖,都能訪問到數據,但是只能讀不能修改
排他鎖(寫鎖):簡稱X鎖,
排他鎖就是不能與其他所并存,如一個事務獲取了一個數據行的排他鎖,
其他事務就不能再獲取該行的其他鎖,包括共享鎖和排他鎖,但是獲取
排他鎖的事務是可以對數據就行讀取和修改。
mysql InnoDB引擎默認的修改數據語句,update,delete,insert都會自動給涉及到的數據加上排他鎖,
select語句默認不會加任何鎖類型,
如果加排他鎖可以使用select ...for update語句,加共享鎖可以使用select ... lock in share mode語句
所以加過排他鎖的數據行在其他事務種是不能修改數據的,也不能通過for update和lock in share mode鎖的方式查詢數據,
但可以直接通過select ...from...查詢數據,因為普通查詢沒有任何鎖機制。
樂觀鎖
悲觀鎖:共享鎖、排他鎖