文章詳情頁(yè)
mysql優(yōu)化 - mysql innodb表鎖問題
瀏覽:115日期:2022-06-12 13:08:52
問題描述
經(jīng)過測(cè)試之后,我發(fā)現(xiàn)以下情況都會(huì)導(dǎo)致表鎖 1.like 2.update,delete無條件的操作 3.update,delete有條件的操作但不是主鍵的操作select無論是有條件還是無條件,條件是不是主鍵或者索引,都不會(huì)鎖表,請(qǐng)問這是對(duì)的嗎?是不是我測(cè)試出現(xiàn)了問題?
問題解答
回答1:select 可指定加各級(jí)鎖如共享鎖、排他鎖等,比如select ... FOR UPDATE。至于為什么需要鎖,舉個(gè)簡(jiǎn)單例子,比如你有個(gè)單據(jù)繼承自上個(gè)單據(jù),這時(shí)候你可以select加讀鎖,鎖定上個(gè)單據(jù),來防止其他人在你提交前對(duì)上個(gè)單據(jù)進(jìn)行修改,造成數(shù)據(jù)不一致。
回答2:只要條件不包含主鍵,或者包含主鍵但不是等號(hào)或IN,都會(huì)鎖全表的,這就包括了問題中全部3種情況。
不管是鎖全表還是鎖幾行,select加讀鎖,update和delete加寫鎖,至于什么是讀鎖、寫鎖,可Google一下。至于細(xì)節(jié),還可以看下事務(wù)隔離級(jí)別,這里就不展開了。
相關(guān)文章:
1. 點(diǎn)擊頁(yè)面就自動(dòng)輸入到mysql.求解2. javascript - windos下第一次用Django無法正確創(chuàng)建工程目錄3. java - 多叉樹求值,程序高手,算法高手看過來4. java - IDEA從SVN檢出項(xiàng)目 并在tomcat上運(yùn)行 求詳細(xì)流程5. node.js - 帶有node_modules目錄的項(xiàng)目,用phpstorm打開速度極慢,怎么解決?6. node.js - nodejs使用formidable上傳文件問題7. 靜態(tài)資源文件引入無效8. css - 請(qǐng)問B站頂部的模糊半透明導(dǎo)航條是怎么實(shí)現(xiàn)的呢?9. javascript - JS用ajax爬取百度外賣店家信息10. mysql索引的疑問
排行榜

熱門標(biāo)簽