久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(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)文章:
主站蜘蛛池模板: 乌恰县| 福鼎市| 江山市| 新和县| 全南县| 新乡市| 枣庄市| 闸北区| 喀什市| 兴文县| 张家口市| 房山区| 德保县| 无为县| 申扎县| 民权县| 淳化县| 苏尼特左旗| 麦盖提县| 文昌市| 延川县| 静海县| 罗田县| 秭归县| 金昌市| 斗六市| 沧州市| 玉环县| 万年县| 永春县| 临安市| 鸡西市| 时尚| 千阳县| 辰溪县| 修武县| 镶黄旗| 西和县| 德昌县| 西乌珠穆沁旗| 屏东市|