国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

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

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

問題描述

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

我在終端開啟了兩個mysql會話,表t一共有350萬行數(shù)據(jù)

單獨執(zhí)行:

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

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

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

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

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

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

問題解答

回答1:

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

主站蜘蛛池模板: 景洪市| 蒙阴县| 九江市| 恭城| 万载县| 黑河市| 蓬溪县| 嘉鱼县| 通城县| 南京市| 阿合奇县| 扶风县| 射阳县| 漳浦县| 深水埗区| 若尔盖县| 辛集市| 北安市| 嵊泗县| 济阳县| 龙胜| 赫章县| 方城县| 灵璧县| 泗水县| 公安县| 藁城市| 双流县| 利津县| 五峰| 湘乡市| 沙湾县| 许昌市| 莎车县| 临朐县| 连城县| 禹州市| 仁化县| 巴南区| 广河县| 汾阳市|