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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql優(yōu)化 - mysql innodb 表鎖,跪求dba大牛,解答

瀏覽:135日期:2022-06-12 10:08:11

問(wèn)題描述

問(wèn)題:1.在innodb中沒(méi)有開(kāi)啟事務(wù)而且autocommit=1的情況下,update,delete會(huì)不會(huì)造成鎖表?

我在終端開(kāi)啟了兩個(gè)mysql會(huì)話,表t一共有350萬(wàn)行數(shù)據(jù)

單獨(dú)執(zhí)行:

會(huì)話1:update t set status=1 where id>1; 16.*秒 會(huì)話2:update t set status=1 where id<3500000; 12.*秒

同時(shí)執(zhí)行,我的理解:

**在我看來(lái),這兩條sql,同時(shí)執(zhí)行,同時(shí)操作同一條記錄的情況,只有一次****在innodb中update和delete都會(huì)隱式添加排它鎖,那么就是說(shuō)這兩條sql同時(shí)執(zhí)行,只會(huì)阻塞很短的時(shí)間,畢竟只有同時(shí)操作同一條記錄的情況下,才會(huì)阻塞**

同時(shí)執(zhí)行,測(cè)試結(jié)果:

兩條sql,間隔執(zhí)行時(shí)間,在半秒左右.會(huì)話1先執(zhí)行:update t set status=1 where id>1;16.*秒,沒(méi)有變化 會(huì)話2后執(zhí)行:update t set status=1 where id<3500000; 28.* = 12.*秒+16.*秒會(huì)話2先執(zhí)行:update t set status=1 where id>1;12.*秒,沒(méi)有變化 會(huì)話1后執(zhí)行:update t set status=1 where id<3500000; 28.* = 16.*秒+12.*秒

難道兩條sql,同時(shí)操作同一個(gè)記錄時(shí),鎖表了?我的理解應(yīng)該是只會(huì)阻塞很短的時(shí)間啊,畢竟只有一次同時(shí)操作同一條記錄,就好像,兩個(gè)人,a從1數(shù)到10,b從10數(shù)到1,無(wú)論是同樣的速度,還是不是一樣的速度,都只可能同時(shí)數(shù)到相同的數(shù)字一次啊

問(wèn)題解答

回答1:

一個(gè)sql就是一個(gè)事務(wù),并不是說(shuō)操作了1W條記錄就是1W個(gè)事務(wù),sql1鎖住所有>1的記錄,sql2會(huì)等待sql1釋放鎖

主站蜘蛛池模板: 漠河县| 天全县| 镇安县| 云林县| 大化| 天水市| 焉耆| 石林| 治县。| 南城县| 玉田县| 海丰县| 深水埗区| 涞水县| 黔江区| 岢岚县| 钦州市| 大关县| 胶南市| 鹤壁市| 双柏县| 绿春县| 伊金霍洛旗| 繁峙县| 大田县| 新丰县| 尚义县| 时尚| 景谷| 扶风县| 勐海县| 巴东县| 广州市| 海城市| 会泽县| 古田县| 五家渠市| 龙山县| 新晃| 阳山县| 琼中|