mysql update 引發(fā)很隱蔽的死鎖問(wèn)題

場(chǎng)景:

mysql當(dāng)使用InnoDB,update語(yǔ)句的where條件沒(méi)有使用主鍵索引(聚簇索引),而是使用非主鍵索引時(shí),會(huì)先鎖住當(dāng)前非主鍵索引,然后再?lài)L試獲取主鍵索引;? 如果事務(wù)一: 已經(jīng)獲取id =1 這一行的主鍵索引和 id = 2這一行的非主鍵索引; 事務(wù)二:??已經(jīng)獲取id =2 這一行的主鍵索引, id = 1這一行的非主鍵索引。兩個(gè)事務(wù)出現(xiàn)相互等待的循環(huán),也就是死鎖。


死鎖場(chǎng)景

解決方式:

update的時(shí)候,先select出所有需要更新的記錄,然后再u(mài)pdate,where只采用主鍵做條件。所有update語(yǔ)句將會(huì)只鎖住主鍵索引,而不會(huì)嘗試鎖非主鍵索引。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 索引 數(shù)據(jù)庫(kù)中的查詢(xún)操作非常普遍,索引就是提升查找速度的一種手段 索引的類(lèi)型 從數(shù)據(jù)結(jié)構(gòu)角度分 1.B+索引:傳統(tǒng)...
    一凡呀閱讀 3,199評(píng)論 0 8
  • 一、MySQL優(yōu)化 MySQL優(yōu)化從哪些方面入手: (1)存儲(chǔ)層(數(shù)據(jù)) 構(gòu)建良好的數(shù)據(jù)結(jié)構(gòu)??梢源蟠蟮奶嵘覀僑...
    寵辱不驚丶?xì)q月靜好閱讀 2,644評(píng)論 1 8
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說(shuō)明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,920評(píng)論 0 9
  • 每一個(gè)小旮旯,都是世界的縮影。 看了戲影師哥師姐的畢業(yè)設(shè)計(jì),主題叫做“旮旯”。每一位設(shè)計(jì)者都在自己的作品中創(chuàng)設(shè)了一...
    海藻姑娘閱讀 478評(píng)論 0 1
  • 1. 在衡山做義工的時(shí)候認(rèn)識(shí)的一個(gè)很可愛(ài)的小妹妹。 最近兩天生病了。跟我借醫(yī)藥費(fèi)。 一開(kāi)始也沒(méi)有當(dāng)回事。就想著生病...
    玄微閱讀 308評(píng)論 0 0

友情鏈接更多精彩內(nèi)容