這篇文章主要講解了“什么是MySQL間歇鎖”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“什么是mysql間歇鎖”吧!
創(chuàng)新互聯(lián)公司憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶提供超值的營銷型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營銷型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶提供了網(wǎng)站制作、成都網(wǎng)站制作服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
說明
1、間隙鎖是Innodb在提交下為了解決幻讀問題時(shí)引入的鎖機(jī)制。
2、對于鍵值在條件范圍內(nèi)但并不存在的記錄,在相等條件下請求給一個(gè)不存在的記錄也會(huì)加鎖,叫做間隙鎖。
實(shí)例
#session1 操作會(huì)話session1 開啟事務(wù) mysql> begin; Query OK, 0 rows affected (0.00 sec) #session1 更新id=11的數(shù)據(jù),獲取行鎖。 mysql> select * from userinfo where id=11 for update; Empty set (0.00 sec) #session2 操作會(huì)話session2 開啟事務(wù) mysql> begin; Query OK, 0 rows affected (0.00 sec) #session2 在會(huì)話session2 新增數(shù)據(jù)主鍵為12 mysql> insert into userinfo values(12,'hh',18); .... 一直處于阻塞狀態(tài) #如果等待時(shí)間過長,session1沒有釋放鎖,會(huì)拋出如下異常。 ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
感謝各位的閱讀,以上就是“什么是mysql間歇鎖”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對什么是mysql間歇鎖這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!