鎖分類:
從對數據操作的粒度分 :
表鎖:操作時,會鎖定整個表。行鎖:操作時,會鎖定當前操作行。
從對數據操作的類型分:
讀鎖(共享鎖):針對同一份數據,多個讀操作可以同時進行而不會互相影響。寫鎖(排它鎖):當前操作沒有完成之前,它會阻斷其他客戶端的
行表鎖特點:
myisam 表鎖:
如何加表鎖
myisam 在執行查詢語句(select)前,會自動給涉及的所有表加讀鎖,在執行更新操作(update、delete、
insert 等)前,會自動給涉及的表加寫鎖,這個過程并不需要用戶干預,因此,用戶一般不需要直接用 lock
table 命令給 myisam 表顯式加鎖。
簡而言之,就是讀鎖會阻塞寫,但是不會阻塞讀。而寫鎖,則既會阻塞讀,又會阻塞寫。
此外,myisam 的讀寫鎖調度是寫優先,這也是myisam不適合做寫為主的表的存儲引擎的原因。因為寫鎖后,其
他線程不能做任何操作,大量的更新會使查詢很難得到鎖,從而造成永遠阻塞。
innodb 行鎖
行鎖介紹
行鎖特點 :偏向innodb 存儲引擎,開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖沖突的概率最低,并發度
也最高。
innodb 與 myisam 的最大不同有三點:一是支持事務;二是 采用了行級鎖;支持外鍵。
事務:
事務是由一組sql語句組成的邏輯處理單元。
事務的四大特性(acid):
到此這篇關于mysql中鎖的相關問題的文章就介紹到這了,更多相關mysql鎖問題內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/weixin_43572928/article/details/122132181