MySQL中鎖的相關問題
鎖分類:
從對數(shù)據(jù)操作的粒度分 :
表鎖:操作時,會鎖定整個表。行鎖:操作時,會鎖定當前操作行。
從對數(shù)據(jù)操作的類型分:
讀鎖(共享鎖):針對同一份數(shù)據(jù),多個讀操作可以同時進行而不會互相影響。寫鎖(排它鎖):當前操作沒有完成之前,它會阻斷其他客戶端的
行表鎖特點:
MyISAM 表鎖:
如何加表鎖
MyISAM 在執(zhí)行查詢語句(SELECT)前,會自動給涉及的所有表加讀鎖,在執(zhí)行更新操作(UPDATE、DELETE、
INSERT 等)前,會自動給涉及的表加寫鎖,這個過程并不需要用戶干預,因此,用戶一般不需要直接用 LOCK
TABLE 命令給 MyISAM 表顯式加鎖。
簡而言之,就是讀鎖會阻塞寫,但是不會阻塞讀。而寫鎖,則既會阻塞讀,又會阻塞寫。
此外,MyISAM 的讀寫鎖調度是寫優(yōu)先,這也是MyISAM不適合做寫為主的表的存儲引擎的原因。因為寫鎖后,其
他線程不能做任何操作,大量的更新會使查詢很難得到鎖,從而造成永遠阻塞。
InnoDB 行鎖
行鎖介紹
行鎖特點 :偏向InnoDB 存儲引擎,開銷大,加鎖慢;會出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度
也最高。
InnoDB 與 MyISAM 的最大不同有三點:一是支持事務;二是 采用了行級鎖;支持外鍵。
事務:
事務是由一組SQL語句組成的邏輯處理單元。
事務的四大特性(ACID):
到此這篇關于MySQL中鎖的相關問題的文章就介紹到這了,更多相關MySQL鎖問題內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。