婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL語句加鎖的實現(xiàn)分析

MySQL語句加鎖的實現(xiàn)分析

熱門標簽:百度地圖標注地方備注 400電話申請什么好 怎么辦理400電話呢 地圖標注圖標素材入駐 怎么申請400電話申請 電銷機器人價格多少錢一臺 好搜地圖標注 龍圖酒吧地圖標注 電話機器人免費嗎

摘要: MySQL兩條SQL語句鎖的分析

看一下下面的SQL語句加什么鎖

SLQ1:select * from t1 where id = 10;
SQL2:delete from t1 where id = 10;

(1)id 是不是主鍵

(2)當(dāng)前系統(tǒng)的隔離級別是什么

(3)id列如果不是主鍵,那么id列上有索引嗎

(4)id列上如果有二級索引,那么這個索引是二級索引嗎

(5)兩個SQL的執(zhí)行計劃是什么?索引掃描還是全表掃描

實際的執(zhí)行計劃需要根據(jù)MySQL的輸出為準

組合一:id列是主鍵,RC隔離級別
組合二:id列是二級唯一索引,RC隔離級別
組合三:id列是二級非唯一索引,RC隔離級別
組合四:id列沒有索引,RC隔離級別
組合五:id列是主鍵,RR隔離級別
組合六:id列是二級唯一索引,RR隔離級別
組合七:id列是二級非唯一索引,RR隔離級別
組合八:id列上沒有索引,RR隔離級別

Serializable隔離級別

在RR RC隔離級別下,SQL1:select 均不加鎖,采用的是快照讀;以下僅討論SQL2:delete操作的加鎖
Percona

組合一:id主鍵+RC
Percona

---TRANSACTION 1286310, ACTIVE 9 sec
2 lock struct(s), heap size 360, 1 row lock(s), undo log entries 1
MySQL thread id 341, OS thread handle 0x7f4d540d0700, query id 4510972 localhost root cleaning up
TABLE LOCK table `test`.`t1` trx id 1286310 lock mode IX
RECORD LOCKS space id 29 page no 3 n bits 80 index `PRIMARY` of table `test`.`t1` trx id 1286310 lock_mode X locks rec but not gap

MySQL

---TRANSACTION 5936, ACTIVE 171 sec
2 lock struct(s), heap size 360, 1 row lock(s), undo log entries 1
MySQL thread id 2, OS thread handle 0x7f5677201700, query id 364 localhost root
TABLE LOCK table `test`.`t1` trx id 5936 lock mode IX
RECORD LOCKS space id 6 page no 3 n bits 80 index `PRIMARY` of table `test`.`t1` trx id 5936 lock_mode X locks rec but not gap
Record lock, heap no 5 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 4; hex 8000000a; asc   ;;
 1: len 6; hex 000000001730; asc   0;;
 2: len 7; hex 26000001550110; asc   U ;;
 3: len 1; hex 61; asc a;;

組合二:id唯一索引+RC
在唯一索引上的更新需要兩個X鎖,一個對應(yīng)唯一索引id=10 記錄,一個對應(yīng)于聚簇索引name='d'的記錄
Percona

---TRANSACTION 1286327, ACTIVE 3 sec
3 lock struct(s), heap size 360, 2 row lock(s), undo log entries 1
MySQL thread id 344, OS thread handle 0x7f4d5404e700, query id 4510986 localhost root cleaning up
TABLE LOCK table `test`.`t2` trx id 1286327 lock mode IX
RECORD LOCKS space id 30 page no 4 n bits 80 index `id` of table `test`.`t2` trx id 1286327 lock_mode X locks rec but not gap
RECORD LOCKS space id 30 page no 3 n bits 80 index `PRIMARY` of table `test`.`t2` trx id 1286327 lock_mode X locks rec but not gap

MySQL

---TRANSACTION 5938, ACTIVE 3 sec
3 lock struct(s), heap size 360, 2 row lock(s), undo log entries 1
MySQL thread id 2, OS thread handle 0x7f5677201700, query id 374 localhost root
TABLE LOCK table `test`.`t2` trx id 5938 lock mode IX
RECORD LOCKS space id 7 page no 4 n bits 80 index `id` of table `test`.`t2` trx id 5938 lock_mode X locks rec but not gap
Record lock, heap no 7 PHYSICAL RECORD: n_fields 2; compact format; info bits 32
 0: len 4; hex 8000000a; asc   ;;
 1: len 1; hex 64; asc d;;

RECORD LOCKS space id 7 page no 3 n bits 80 index `PRIMARY` of table `test`.`t2` trx id 5938 lock_mode X locks rec but not gap
Record lock, heap no 7 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 1; hex 64; asc d;;
 1: len 6; hex 000000001732; asc   2;;
 2: len 7; hex 27000001560110; asc '  V ;;
 3: len 4; hex 8000000a; asc   ;;

組合三:id非唯一索引+RC
ID列為普通索引,那么對應(yīng)的所有滿足SQL查詢條件的記錄,都會被加鎖;同時,這些記錄在主鍵索引上的記錄,也會被加鎖
Percona

---TRANSACTION 1286339, ACTIVE 9 sec
3 lock struct(s), heap size 360, 4 row lock(s), undo log entries 2
MySQL thread id 347, OS thread handle 0x7f4b67fff700, query id 4511015 localhost root cleaning up
TABLE LOCK table `test`.`t3` trx id 1286339 lock mode IX
RECORD LOCKS space id 31 page no 4 n bits 80 index `idx_key` of table `test`.`t3` trx id 1286339 lock_mode X locks rec but not gap
RECORD LOCKS space id 31 page no 3 n bits 80 index `PRIMARY` of table `test`.`t3` trx id 1286339 lock_mode X locks rec but not gap

MySQL

---TRANSACTION 5940, ACTIVE 3 sec
3 lock struct(s), heap size 360, 4 row lock(s), undo log entries 2
MySQL thread id 2, OS thread handle 0x7f5677201700, query id 378 localhost root
TABLE LOCK table `test`.`t3` trx id 5940 lock mode IX
RECORD LOCKS space id 8 page no 4 n bits 80 index `idx_key` of table `test`.`t3` trx id 5940 lock_mode X locks rec but not gap
Record lock, heap no 4 PHYSICAL RECORD: n_fields 2; compact format; info bits 32
 0: len 4; hex 8000000a; asc   ;;
 1: len 1; hex 62; asc b;;

Record lock, heap no 5 PHYSICAL RECORD: n_fields 2; compact format; info bits 32
 0: len 4; hex 8000000a; asc   ;;
 1: len 1; hex 64; asc d;;

RECORD LOCKS space id 8 page no 3 n bits 80 index `PRIMARY` of table `test`.`t3` trx id 5940 lock_mode X locks rec but not gap
Record lock, heap no 4 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 1; hex 62; asc b;;
 1: len 6; hex 000000001734; asc   4;;
 2: len 7; hex 28000001570110; asc (  W ;;
 3: len 4; hex 8000000a; asc   ;;

Record lock, heap no 5 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 1; hex 64; asc d;;
 1: len 6; hex 000000001734; asc   4;;
 2: len 7; hex 28000001570132; asc (  W 2;;
 3: len 4; hex 8000000a; asc   ;;

組合四:id無索引+RC
Percona

---TRANSACTION 1286373, ACTIVE 5 sec
2 lock struct(s), heap size 360, 2 row lock(s), undo log entries 2
MySQL thread id 348, OS thread handle 0x7f4d54193700, query id 4511037 localhost root cleaning up
TABLE LOCK table `test`.`t4` trx id 1286373 lock mode IX
RECORD LOCKS space id 33 page no 3 n bits 80 index `PRIMARY` of table `test`.`t4` trx id 1286373 lock_mode X locks rec but not gap

MySQL

---TRANSACTION 5946, ACTIVE 2 sec
2 lock struct(s), heap size 360, 2 row lock(s), undo log entries 2
MySQL thread id 2, OS thread handle 0x7f5677201700, query id 382 localhost root
TABLE LOCK table `test`.`t4` trx id 5946 lock mode IX
RECORD LOCKS space id 9 page no 3 n bits 80 index `PRIMARY` of table `test`.`t4` trx id 5946 lock_mode X locks rec but not gap
Record lock, heap no 3 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 1; hex 62; asc b;;
 1: len 6; hex 00000000173a; asc   :;;
 2: len 7; hex 2b0000015a0110; asc +  Z ;;
 3: len 4; hex 8000000a; asc   ;;

Record lock, heap no 5 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 1; hex 64; asc d;;
 1: len 6; hex 00000000173a; asc   :;;
 2: len 7; hex 2b0000015a012c; asc +  Z ,;;
 3: len 4; hex 8000000a; asc   ;;

組合五:id主鍵+RR
參考 組合一

組合六:id唯一索引+RR
參考 組合二

組合七:id非唯一索引+RR
Percona

---TRANSACTION 1592633, ACTIVE 24 sec
4 lock struct(s), heap size 1184, 5 row lock(s), undo log entries 2
MySQL thread id 794, OS thread handle 0x7f4d5404e700, query id 7801799 localhost root cleaning up
Trx read view will not see trx with id >= 1592634, sees  1592634
TABLE LOCK table `test`.`t3` trx id 1592633 lock mode IX
RECORD LOCKS space id 31 page no 4 n bits 80 index `idx_key` of table `test`.`t3` trx id 1592633 lock_mode X
RECORD LOCKS space id 31 page no 3 n bits 80 index `PRIMARY` of table `test`.`t3` trx id 1592633 lock_mode X locks rec but not gap
RECORD LOCKS space id 31 page no 4 n bits 80 index `idx_key` of table `test`.`t3` trx id 1592633 lock_mode X locks gap before rec

MySQL

---TRANSACTION 5985, ACTIVE 7 sec
4 lock struct(s), heap size 1184, 5 row lock(s), undo log entries 2
MySQL thread id 12, OS thread handle 0x7f56770fd700, query id 500 localhost root
TABLE LOCK table `test`.`t3` trx id 5985 lock mode IX
RECORD LOCKS space id 8 page no 4 n bits 80 index `idx_key` of table `test`.`t3` trx id 5985 lock_mode X
Record lock, heap no 4 PHYSICAL RECORD: n_fields 2; compact format; info bits 32
 0: len 4; hex 8000000a; asc   ;;
 1: len 1; hex 64; asc d;;

Record lock, heap no 5 PHYSICAL RECORD: n_fields 2; compact format; info bits 32
 0: len 4; hex 8000000a; asc   ;;
 1: len 1; hex 62; asc b;;

RECORD LOCKS space id 8 page no 3 n bits 80 index `PRIMARY` of table `test`.`t3` trx id 5985 lock_mode X locks rec but not gap
Record lock, heap no 4 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 1; hex 64; asc d;;
 1: len 6; hex 000000001761; asc   a;;
 2: len 7; hex 3f0000016d0132; asc ?  m 2;;
 3: len 4; hex 8000000a; asc   ;;

Record lock, heap no 5 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 1; hex 62; asc b;;
 1: len 6; hex 000000001761; asc   a;;
 2: len 7; hex 3f0000016d0110; asc ?  m ;;
 3: len 4; hex 8000000a; asc   ;;

RECORD LOCKS space id 8 page no 4 n bits 80 index `idx_key` of table `test`.`t3` trx id 5985 lock_mode X locks gap before rec
Record lock, heap no 8 PHYSICAL RECORD: n_fields 2; compact format; info bits 0
 0: len 4; hex 8000000b; asc   ;;
 1: len 1; hex 66; asc f;;

組合八:id無索引+RR
Percona

---TRANSACTION 1592639, ACTIVE 4 sec
2 lock struct(s), heap size 360, 7 row lock(s), undo log entries 2
MySQL thread id 794, OS thread handle 0x7f4d5404e700, query id 7801804 localhost root cleaning up
TABLE LOCK table `test`.`t4` trx id 1592639 lock mode IX
RECORD LOCKS space id 33 page no 3 n bits 80 index `PRIMARY` of table `test`.`t4` trx id 1592639 lock_mode X

MySQL

---TRANSACTION 6000, ACTIVE 3 sec
2 lock struct(s), heap size 360, 7 row lock(s), undo log entries 2
MySQL thread id 12, OS thread handle 0x7f56770fd700, query id 546 localhost root
TABLE LOCK table `test`.`t4` trx id 6000 lock mode IX
RECORD LOCKS space id 9 page no 3 n bits 80 index `PRIMARY` of table `test`.`t4` trx id 6000 lock_mode X
Record lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 0
 0: len 8; hex 73757072656d756d; asc supremum;;

Record lock, heap no 2 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
 0: len 1; hex 61; asc a;;
 1: len 6; hex 000000001722; asc   ";;
 2: len 7; hex 9e0000014e0110; asc   N ;;
 3: len 4; hex 8000000f; asc   ;;

Record lock, heap no 3 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 1; hex 62; asc b;;
 1: len 6; hex 000000001770; asc   p;;
 2: len 7; hex 47000001730110; asc G  s ;;
 3: len 4; hex 8000000a; asc   ;;

Record lock, heap no 4 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
 0: len 1; hex 63; asc c;;
 1: len 6; hex 000000001722; asc   ";;
 2: len 7; hex 9e0000014e0122; asc   N ";;
 3: len 4; hex 80000006; asc   ;;

Record lock, heap no 5 PHYSICAL RECORD: n_fields 4; compact format; info bits 32
 0: len 1; hex 64; asc d;;
 1: len 6; hex 000000001770; asc   p;;
 2: len 7; hex 4700000173012c; asc G  s ,;;
 3: len 4; hex 8000000a; asc   ;;

Record lock, heap no 6 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
 0: len 1; hex 66; asc f;;
 1: len 6; hex 000000001722; asc   ";;
 2: len 7; hex 9e0000014e0134; asc   N 4;;
 3: len 4; hex 8000000b; asc   ;;

Record lock, heap no 7 PHYSICAL RECORD: n_fields 4; compact format; info bits 0
 0: len 2; hex 7a7a; asc zz;;
 1: len 6; hex 000000001722; asc   ";;
 2: len 7; hex 9e0000014e013d; asc   N =;;
 3: len 4; hex 80000002; asc   ;;

組合九:Serializable

針對前面提到的簡單的SQL,最后一個情況:Serializable隔離級別。對于SQL2:delete from t1 where id = 10; 來說,Serializable隔離級別與Repeatable Read隔離級別完全一致,因此不做介紹。

Serializable隔離級別,影響的是SQL1:select * from t1 where id = 10; 這條SQL,在RC,RR隔離級別下,都是快照讀,不加鎖。但是在Serializable隔離級別,SQL1會加讀鎖,也就是說快照讀不復(fù)存在,MVCC并發(fā)控制降級為Lock-Based CC。

結(jié)論:在MySQL/InnoDB中,所謂的讀不加鎖,并不適用于所有的情況,而是隔離級別相關(guān)的。Serializable隔離級別,讀不加鎖就不再成立,所有的讀操作,都是當(dāng)前讀。

您可能感興趣的文章:
  • PHP+MySQL高并發(fā)加鎖事務(wù)處理問題解決方法
  • Mysql事務(wù)并發(fā)問題解決方案
  • MySQL 數(shù)據(jù)庫如何解決高并發(fā)問題
  • mysql多版本并發(fā)控制MVCC的實現(xiàn)
  • MySQL并發(fā)更新數(shù)據(jù)時的處理方法
  • Tomcat+Mysql高并發(fā)配置優(yōu)化講解
  • PHP利用Mysql鎖解決高并發(fā)的方法
  • MySQL 加鎖控制并發(fā)的方法

標簽:固原 溫州 防疫工作 內(nèi)江 浙江 撫順 廣西 汕尾

巨人網(wǎng)絡(luò)通訊聲明:本文標題《MySQL語句加鎖的實現(xiàn)分析》,本文關(guān)鍵詞  MySQL,語句,加鎖,的,實現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL語句加鎖的實現(xiàn)分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL語句加鎖的實現(xiàn)分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品一区二区三区免费毛片爱| 欧美国产乱子伦| 99久久久久久| 国产91在线看| 成人精品在线视频观看| 成人污污视频在线观看| 91麻豆精品在线观看| 日本久久一区二区| 欧美性一二三区| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲欧美电影院| 一级特黄大欧美久久久| 亚洲午夜精品17c| 婷婷综合另类小说色区| 久久国产精品99久久久久久老狼 | 91免费国产在线| 色欧美88888久久久久久影院| 91国偷自产一区二区开放时间| 欧美人妖巨大在线| 久久久噜噜噜久噜久久综合| 日韩一区在线看| 日韩激情视频网站| 国产suv精品一区二区6| 欧美在线短视频| 精品国产a毛片| 亚洲精品乱码久久久久久久久| 午夜伦理一区二区| 大胆欧美人体老妇| 欧美裸体bbwbbwbbw| 亚洲国产精品精华液2区45| 亚洲综合激情另类小说区| 秋霞午夜鲁丝一区二区老狼| 成人视屏免费看| 在线成人av影院| 最新热久久免费视频| 日本不卡一区二区三区高清视频| 成人黄色777网| 欧美美女喷水视频| 中文字幕一区二区三区色视频| 天堂一区二区在线| 91亚洲男人天堂| 国产精品素人一区二区| 亚洲午夜国产一区99re久久| 国产精品一区二区黑丝| 中文字幕在线一区二区三区| 777午夜精品视频在线播放| 久久综合中文字幕| 亚洲免费成人av| 狠狠色丁香婷婷综合久久片| 欧美日韩视频不卡| 欧美国产日产图区| 麻豆专区一区二区三区四区五区| 色综合激情久久| 欧美高清在线视频| 国产一区二区三区美女| 91精品黄色片免费大全| 一区二区三区蜜桃| 99久久伊人精品| 国产精品伦理一区二区| 精品无人区卡一卡二卡三乱码免费卡| 欧美视频一区二区在线观看| 亚洲欧美另类综合偷拍| 成人app在线观看| 国产精品乱人伦| 成人一级片网址| 亚洲国产精品传媒在线观看| 国产成人av影院| 欧美国产激情一区二区三区蜜月| 国产精品1区2区| 国产亚洲1区2区3区| 国产精品一区专区| 久久婷婷一区二区三区| 国产一区二区三区久久悠悠色av| 欧美videos中文字幕| 久久99精品久久久久| 久久婷婷久久一区二区三区| 国产精品白丝jk黑袜喷水| 国产午夜精品理论片a级大结局| 国产尤物一区二区| 国产日韩欧美制服另类| 国产99久久久久久免费看农村| 中文字幕精品—区二区四季| 99re6这里只有精品视频在线观看| 日韩久久一区二区| 欧美日韩综合一区| 青青草国产精品亚洲专区无| 2020日本不卡一区二区视频| 成人高清免费观看| 亚洲一区二区视频在线| 日韩亚洲电影在线| 国产成人精品免费网站| 亚洲激情图片一区| 91精品国产综合久久精品性色 | 日韩高清一区在线| 精品久久久久一区| 99久免费精品视频在线观看| 五月综合激情网| 久久久亚洲午夜电影| 一本大道久久a久久综合| 蜜桃久久久久久久| 综合中文字幕亚洲| 日韩一区二区在线观看| 成人黄色电影在线| 首页综合国产亚洲丝袜| 中文字幕免费不卡在线| 欧美日韩卡一卡二| 成人性视频免费网站| 天天综合色天天| 中文字幕一区二区三区视频| 69堂精品视频| 91猫先生在线| 韩国成人精品a∨在线观看| 亚洲男人的天堂av| 欧美va亚洲va香蕉在线| 91福利精品第一导航| 国产精品亚洲成人| 视频在线观看91| 日韩美女精品在线| 欧美xxxx老人做受| 欧美疯狂做受xxxx富婆| 91视频精品在这里| 国内精品第一页| 日本不卡在线视频| 午夜精品久久久久久久久久久| 国产午夜亚洲精品不卡| 欧美sm极限捆绑bd| 欧美精品精品一区| 色欧美88888久久久久久影院| 国产宾馆实践打屁股91| 精品综合免费视频观看| 日本怡春院一区二区| 亚洲线精品一区二区三区| 国产精品久久久久9999吃药| 久久久激情视频| 久久久久久综合| 26uuu亚洲| 精品成a人在线观看| 日韩欧美中文字幕公布| 欧美日韩高清不卡| 欧美日韩国产一级| 91.xcao| 欧美日韩国产乱码电影| 欧美日韩精品福利| 欧美日韩亚洲综合在线| 欧美日韩国产免费一区二区 | 国产精品情趣视频| 国产午夜精品久久久久久久| 久久久久久亚洲综合影院红桃 | 国产精品久久久久久久久久久免费看 | 26uuu亚洲综合色欧美| 久久综合狠狠综合| 久久精品亚洲麻豆av一区二区| 久久精品网站免费观看| 国产精品麻豆视频| 亚洲免费av网站| 亚洲成av人片在www色猫咪| 亚洲一区二区黄色| 日韩av高清在线观看| 久久成人精品无人区| 精品系列免费在线观看| 成人av网站大全| 一本大道av一区二区在线播放| 欧美做爰猛烈大尺度电影无法无天| 欧美亚洲高清一区| 欧美成人a视频| 国产精品欧美久久久久无广告 | 国产成人免费视频网站| 成人性生交大片免费看视频在线| jlzzjlzz亚洲女人18| 欧美日韩亚洲综合一区 | 99久久精品免费看| 欧美午夜精品久久久久久超碰| 3d动漫精品啪啪1区2区免费| 久久久久国产精品人| 亚洲精品视频免费看| 日本美女一区二区三区视频| 国模冰冰炮一区二区| 色一情一乱一乱一91av| 日韩你懂的在线播放| 亚洲人快播电影网| 蜜桃一区二区三区在线观看| 国产成人精品三级| 欧美精品粉嫩高潮一区二区| 国产日韩精品一区二区浪潮av| 亚洲激情校园春色| 久久99久久99小草精品免视看| 99精品国产视频| 亚洲精品一区二区在线观看| 一区二区三区在线播| 国产精品996| 在线综合视频播放| 亚洲精品日日夜夜| 国产91在线|亚洲| 欧美大片一区二区| 亚洲图片欧美综合| 99v久久综合狠狠综合久久| 欧美精品一区二区三区蜜桃| 亚洲图片欧美色图| 91麻豆国产福利在线观看| 国产日韩亚洲欧美综合|