亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

基于更新SQL語句理解MySQL鎖定詳解

2024-07-25 19:09:21
字體:
供稿:網(wǎng)友

前言

MySQL數(shù)據(jù)庫鎖是實(shí)現(xiàn)數(shù)據(jù)一致性,解決并發(fā)問題的重要手段。數(shù)據(jù)庫是一個(gè)多用戶共享的資源,當(dāng)出現(xiàn)并發(fā)的時(shí)候,就會(huì)導(dǎo)致出現(xiàn)各種各樣奇怪的問題,就像程序代碼一樣,出現(xiàn)多線程并發(fā)的時(shí)候,如果不做特殊控制的話,就會(huì)出現(xiàn)意外的事情,比如“臟“數(shù)據(jù)、修改丟失等問題。所以數(shù)據(jù)庫并發(fā)需要使用事務(wù)來控制,事務(wù)并發(fā)問題需要數(shù)據(jù)庫鎖來控制,所以數(shù)據(jù)庫鎖是跟并發(fā)控制和事務(wù)聯(lián)系在一起的。

本文主要描述基于更新SQL語句來理解MySQL鎖定。下面話不多說了,來一起看看詳細(xì)的介紹吧

一、構(gòu)造環(huán)境

(root@localhost) [user]> show variables like 'version';+---------------+------------+| Variable_name | Value |+---------------+------------+| version | 5.7.23-log |+---------------+------------+(root@localhost) [user]> desc t1;+-------------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-------------+--------------+------+-----+---------+----------------+| id | int(11) | NO | PRI | NULL | auto_increment || n | int(11) | YES | | NULL | || table_name | varchar(64) | YES | | NULL | || column_name | varchar(64) | YES | | NULL | || pad | varchar(100) | YES | | NULL | |+-------------+--------------+------+-----+---------+----------------+(root@localhost) [user]> select count(*) from t1;+----------+| count(*) |+----------+| 3406 |+----------+(root@localhost) [user]> create unique index idx_t1_pad on t1(pad);Query OK, 0 rows affected (0.35 sec)Records: 0 Duplicates: 0 Warnings: 0(root@localhost) [user]> create index idx_t1_n on t1(n);Query OK, 0 rows affected (0.03 sec)Records: 0 Duplicates: 0 Warnings: 0(root@localhost) [user]> show index from t1;+-------+------------+------------+--------------+-------------+-----------+-------------+------+------------+| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Null | Index_type |+-------+------------+------------+--------------+-------------+-----------+-------------+------+------------+| t1 | 0 | PRIMARY | 1 | id | A | 3462 | | BTREE || t1 | 0 | idx_t1_pad | 1 | pad | A | 3406 | YES | BTREE || t1 | 1 | idx_t1_n | 1 | n | A | 12 | YES | BTREE |+-------+------------+------------+--------------+-------------+-----------+-------------+------+------------+select 'Leshami' author,'http://blog.csdn.net/leshami' Blog;+---------+------------------------------+| author | Blog |+---------+------------------------------+| Leshami | http://blog.csdn.net/leshami |+---------+------------------------------+

二、基于主鍵更新

(root@localhost) [user]> start transaction;Query OK, 0 rows affected (0.00 sec)(root@localhost) [user]> update t1 set table_name='t1' where id=1299;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0SELECT trx_id, trx_state, trx_started, trx_mysql_thread_id, trx_tables_locked, trx_rows_locked, trx_rows_modified, trx_isolation_levelFROM INFORMATION_SCHEMA.INNODB_TRX /G-- 從下面的結(jié)果可知,trx_rows_locked,一行被鎖定 *************************** 1. row *************************** trx_id: 6349647 trx_state: RUNNING trx_started: 2018-11-06 16:54:12trx_mysql_thread_id: 2 trx_tables_locked: 1 trx_rows_locked: 1 trx_rows_modified: 1trx_isolation_level: REPEATABLE READ (root@localhost) [user]> rollback;Query OK, 0 rows affected (0.01 sec)

三、基于二級(jí)唯一索引

(root@localhost) [user]> start transaction;Query OK, 0 rows affected (0.00 sec)(root@localhost) [user]> update t1 set table_name='t2' where pad='4f39e2a03df3ab94b9f6a48c4aecdc0b';Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0SELECT trx_id, trx_state, trx_started, trx_mysql_thread_id, trx_tables_locked, trx_rows_locked, trx_rows_modified, trx_isolation_levelFROM INFORMATION_SCHEMA.INNODB_TRX /G-- 從下面的查詢結(jié)果可知,trx_rows_locked,2行被鎖定*************************** 1. row *************************** trx_id: 6349649 trx_state: RUNNING trx_started: 2018-11-06 16:55:22trx_mysql_thread_id: 2 trx_tables_locked: 1 trx_rows_locked: 2 trx_rows_modified: 1trx_isolation_level: REPEATABLE READ (root@localhost) [user]> rollback;Query OK, 0 rows affected (0.00 sec)

三、基于二級(jí)非唯一索引

(root@localhost) [user]> start transaction;Query OK, 0 rows affected (0.00 sec)(root@localhost) [user]> update t1 set table_name='t3' where n=8;Query OK, 350 rows affected (0.01 sec)Rows matched: 351 Changed: 351 Warnings: 0SELECT trx_id, trx_state, trx_started, trx_mysql_thread_id, trx_tables_locked, trx_rows_locked, trx_rows_modified, trx_isolation_levelFROM INFORMATION_SCHEMA.INNODB_TRX /G --從下面的查詢結(jié)果可知,703行被鎖定*************************** 1. row ***************************  trx_id: 6349672  trx_state: RUNNING trx_started: 2018-11-06 17:06:53trx_mysql_thread_id: 2 trx_tables_locked: 1 trx_rows_locked: 703 trx_rows_modified: 351trx_isolation_level: REPEATABLE READ(root@localhost) [user]> rollback;Query OK, 0 rows affected (0.00 sec)

四、無索引更新

(root@localhost) [user]> start transaction;Query OK, 0 rows affected (0.00 sec)(root@localhost) [user]> update t1 set table_name='t4' where column_name='id';Query OK, 26 rows affected (0.00 sec)Rows matched: 26 Changed: 26 Warnings: 0SELECT trx_id, trx_state, trx_started, trx_mysql_thread_id, trx_tables_locked, trx_rows_locked, trx_rows_modified, trx_isolation_levelFROM INFORMATION_SCHEMA.INNODB_TRX /G-- 從下面的查詢結(jié)果可知,trx_rows_locked,3429行被鎖定,而被更新的僅僅為26行-- 而且這個(gè)結(jié)果超出了表上的總行數(shù)3406*************************** 1. row ***************************  trx_id: 6349674  trx_state: RUNNING trx_started: 2018-11-06 17:09:41trx_mysql_thread_id: 2 trx_tables_locked: 1 trx_rows_locked: 3429 trx_rows_modified: 26trx_isolation_level: REPEATABLE READ(root@localhost) [user]> rollback;Query OK, 0 rows affected (0.00 sec)-- 也可以通過show engine innodb status進(jìn)行觀察show engine innodb status/G------------TRANSACTIONS------------Trx id counter 6349584Purge done for trx's n:o < 0 undo n:o < 0 state: running but idleHistory list length 0LIST OF TRANSACTIONS FOR EACH SESSION:---TRANSACTION 421943222819552, not started0 lock struct(s), heap size 1136, 0 row lock(s)---TRANSACTION 6349583, ACTIVE 2 sec2 lock struct(s), heap size 1136, 1 row lock(s), undo log entries 1------------TRANSACTIONS------------Trx id counter 6349586Purge done for trx's n:o < 6349585 undo n:o < 0 state: running but idleHistory list length 1LIST OF TRANSACTIONS FOR EACH SESSION:---TRANSACTION 421943222819552, not started0 lock struct(s), heap size 1136, 0 row lock(s)---TRANSACTION 6349585, ACTIVE 8 sec3 lock struct(s), heap size 1136, 2 row lock(s), undo log entries 1MySQL thread id 2, OS thread handle 140467640694528, query id 29 localhost root

五、鎖相關(guān)查詢SQL

1:查看當(dāng)前的事務(wù)

SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;

2:查看當(dāng)前鎖定的事務(wù)

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;

3:查看當(dāng)前等鎖的事務(wù)

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;SELECT trx_id, trx_state, trx_started, trx_mysql_thread_id thr_id, trx_tables_locked tb_lck, trx_rows_locked rows_lck, trx_rows_modified row_mfy, trx_isolation_level is_lvlFROM INFORMATION_SCHEMA.INNODB_TRX;SELECT r.`trx_id` waiting_trx_id, r.`trx_mysql_thread_id` waiting_thread, r.`trx_query` waiting_query, b.`trx_id` bolcking_trx_id, b.`trx_mysql_thread_id` blocking_thread, b.`trx_query` block_queryFROM information_schema.`INNODB_LOCK_WAITS` w INNER JOIN information_schema.`INNODB_TRX` b ON b.`trx_id` = w.`blocking_trx_id` INNER JOIN information_schema.`INNODB_TRX` r ON r.`trx_id` = w.`requesting_trx_id`;

六、小結(jié)

1、MySQL表更新時(shí),對(duì)記錄的鎖定根據(jù)更新時(shí)where謂詞條件來確定鎖定范圍

2、對(duì)于聚簇索引過濾,由于索引即數(shù)據(jù),因?yàn)閮H僅鎖定更新行,這是由聚簇索引的性質(zhì)決定的

3、對(duì)于非聚簇唯一索引過濾,由于需要回表,因此鎖定為唯一索引過濾行數(shù)加上回表行數(shù)

4、對(duì)于非聚簇非唯一索引過濾,涉及到了間隙鎖,因此鎖定的記錄數(shù)更多

5、如果過濾條件無任何索引或無法使用到索引,則鎖定整張表上所有數(shù)據(jù)行

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
凹凸成人在线| 亚洲精品国产suv| 性18欧美另类| 黄色三级电影网站| 成人毛片av在线| 97久久精品人人澡人人爽缅北| 再深点灬舒服灬太大了添少妇视频| 国产女人爽到高潮a毛片| 精品伦理精品一区| 日韩中文字幕综合| 苍井空张开腿实干12次| 欧美高清在线精品一区| 亚洲熟女毛茸茸| 亚洲色图一二三区| 欧美日韩另类国产亚洲欧美一级| 专区另类欧美日韩| 国产富婆一区二区三区| 97蝌蚪自拍自窝| 精品97人妻无码中文永久在线| 91豆麻精品91久久久久久| 欧美涩涩视频| 国产成人精品影院| 国产电影一区二区三区| 欧美日韩一级在线观看| 椎名由奈jux491在线播放| 日韩欧美在线观看一区二区三区| 99久久99久久精品国产片桃花| 久久久久一本一区二区青青蜜月| 老司机av在线免费看| 99久久国产综合精品女小说| 91超碰中文字幕久久精品| 91看片淫黄大片91| 色老板在线视频一区二区| 亚洲石原莉奈一区二区在线观看| 久草一区二区| 成人精品动漫一区二区三区| 中文字幕无码精品亚洲资源网久久| 男人日女人视频网站| 91av在线免费观看| 欧美三级日韩在线| 国产寡妇色xxⅹ交肉视频| 无码人妻精品一区二区中文| 欧美一级日韩不卡播放免费| 久久成人国产| 亚洲精品综合久久中文字幕| 亚洲在线视频| 精品亚洲一区二区三区在线播放| 国产精品免费小视频| 亚洲第一男人av| 免费黄色网址在线观看| 久操国产精品| 2019国产精品视频| 国产精品一区在线| 91精品人妻一区二区三区蜜桃2| 午夜精品一区二区三区在线播放| 神马影院一区二区三区| 九九热在线视频免费观看| 色婷婷综合成人av| 亚洲精品一区二区| 免费看一级毛片| 免费视频网站在线观看入口| 91精品在线一区二区| 女人扒开屁股爽桶30分钟| 97人妻精品一区二区三区软件| 中文字幕一区二区三区色视频| 欧美日韩一区二区不卡| 日韩在线视频导航| 国产精品海角社区在线观看| 久久精品国产一区二区电影| 欧美在线一区视频| 狠狠色henhense| 国模 一区 二区 三区| 欧美理论片在线| 18成人在线视频| 懂色av中文字幕一区二区三区| 欧美自拍偷拍一区| 国产无遮挡又黄又爽又色| 国产综合色精品一区二区三区| 成人黄色大片在线免费观看| 97在线观看免费高| 久久精品国产www456c0m| 国产尤物99| 四虎国产精品免费久久| 国产精品入口麻豆电影| 日韩精品影院| 波多野结衣亚洲一区二区| 国产午夜精品一区二区| 亚洲线精品一区二区三区八戒| 男人皇宫亚洲男人2020| 亚洲天堂网2018| 久久久精品国产一区二区三区| 亚洲欧洲精品视频| 奇米狠狠一区二区三区| 日韩午夜在线| 亚洲青青青在线视频| 亚洲自拍偷拍色图| 亚洲精品国精品久久99热一| www.av麻豆| 亚洲男人第一av网站| 99视频精品视频高清免费| 97国产精品视频人人做人人爱| 精品福利在线| 99精品视频免费看| 破处女黄色一级片| 一级视频在线观看视频在线啦啦| 8mav模特福利视频在线观看| 五月婷婷综合在线观看| 日韩专区视频网站| 国自产拍偷拍精品啪啪一区二区| 欧美理论电影在线观看| 26uuu精品一区二区三区四区在线| 91黑人精品一区二区三区| 亚洲色图在线观看| 国产精品亚洲一区二区三区在线观看| 亚洲一区二区三区高清不卡| 韩剧1988在线观看免费完整版| 国产欧美一区二区| 麻豆视频在线观看免费| 亚洲精品一卡二卡三卡四卡| 久久久久久综合网| 欧美猛男做受videos| 欧美日韩中文在线| 欧美一二三区在线| 国产欧美一区二区三区米奇| 91麻豆精品91久久久久久清纯| 在线观看亚洲大片短视频| 久久久电影一区二区三区| 五月婷婷之婷婷| 一线天自拍视频| 国产精品精品久久久| 一区精品在线播放| 久久综合电影| 91精品国产99久久久久久| 亚洲欧洲美洲在线综合| 伊人国产在线观看| 亚洲欧美成人综合| 成年人影院在线观看| 老司机精品福利在线观看| 欧美日韩不卡在线| 国模私拍一区二区三区| 欧美激情黑白配| 在线视频不卡国产| www.天天干.com| 精品国产伦一区二区三区观看方式| 久久亚洲黄色| 欧美精品一卡两卡| 美女黄色片网站| 亚洲理论在线a中文字幕| 国产亚洲精品久久久久久打不开| 成人av免费在线播放| 国产精品国内免费一区二区三区| 国产小视频免费在线观看| 天堂网www天堂在线网| 日本成人在线免费视频| 538在线视频| 99精品欧美一区二区| 实拍女处破www免费看| 亚洲综合在线做性| 亚洲女人被黑人巨大进入| 精品99又大又爽又硬少妇毛片| 国产主播一区二区三区四区| 在线看片线路1| 久久综合伊人77777麻豆最新章节| 最新四虎影在线在永久观看www| 国产伦精品一区二区三区视频孕妇| 成人一级视频| 欧美在线网站| 五月天天在线| 国产成人在线观看网站| 韩国成人在线视频| 成人美女视频在线观看18| 91激情视频在线观看| 毛片基地一级大毛片| 亚洲日韩成人| 国产精品国产三级国产有无不卡| 91精品国产综合久久精品图片| 欧美一级二区| 国产欧美日韩精品a在线观看| 丝袜美腿一区二区三区| 国产精品无码久久av| 国产777精品精品热热热一区二区| 欧美黑人性猛交xxx| 久青草视频在线播放| 免费精品视频最新在线| 中文子幕无线码一区tr| 国产精品一区二区在线观看网站| 未满十八勿进黄网站一区不卡| 国产哺乳奶水91在线播放| 久久香蕉精品香蕉| 九九久久久久午夜精选| 欧美2区3区4区| 欧美日韩一区二区电影| 18久久久久久| www.久久网| 欧美午夜精品久久久| 欧美va亚洲va在线观看蝴蝶网| 国产精品美女久久久久久久| 国产高清免费av在线| 2024最新电影在线免费观看| 国产农村妇女毛片精品久久| 欧美激情不卡| 欧美另类视频在线| 欧美日韩视频在线第一区| 亚洲网色网站| 国产欧美日韩丝袜精品一区| 亚洲精品天堂成人片av在线播放| 欧美色网在线| 精品综合久久| 欧美野外性xxxxfeexxxx| 777免费视频| 国产精品男女| 国产精品精品国产| 最新国产在线视频| 一区二区三区精品在线| 中文字幕日韩视频| jizz久久久久久| 国产精品夜夜夜爽张柏芝| silk一区二区三区精品视频| 日韩电影在线观看一区二区| 精品亚洲一区二区三区四区五区| 国产精品久久久久久久久久辛辛| av五月天在线| 国产精品乱码一区二区三区软件| 亚洲综合色婷婷在线观看| 欧美成人黄色网址| 久久亚洲精精品中文字幕| 日本全棵写真视频在线观看| 日本黄色免费观看| 女性生殖扒开酷刑vk| 欧美亚洲高清一区| 亚洲视频网站在线观看| 在线观看三级网站| 欧美日韩视频在线一区二区| 国产伦精品一区二区三毛| 亚洲综合另类| 国产乱码精品一区二区三区亚洲人| 亚洲中国色老太| 四虎精品成人a在线观看| 高潮精品一区videoshd| 性伦欧美刺激片在线观看| 国产黄色片免费| 成人午夜福利视频| 欧美日韩亚洲综合一区二区三区激情在线| 不卡电影一区二区三区| 蜜乳av一区二区三区| 国产精品午夜av| 亚洲欧美一区二区三区不卡| 黄色网址中文字幕| 久久av资源网站| 国产日韩欧美自拍| 欧美一级三级| 亚洲女人****多毛耸耸8| 国产综合色激情| 久久精品亚洲精品| 亚洲色图校园春色| 亚洲精品tv久久久久久久久| 亚洲色图14p| 久久久这里只有精品视频| 精品久久五月天| 免费成人深夜蜜桃视频| 天天躁日日躁成人字幕aⅴ| 99综合在线| 图片婷婷一区| 最新国产成人av网站网址麻豆| 国产精品香蕉| 久久精品久久精品久久| 男女视频在线观看| 久久久久久久久久影院| 久久福利视频导航| 欧美xxxx黑人xyx性爽| 一区精品在线播放| 在线观看亚洲a| 性中国古装videossex| 俺去亚洲欧洲欧美日韩| 成人午夜视频网站| 欧美最猛黑人xxxx黑人猛交3p| 欧美精品一区二区三区高清aⅴ| 久久久久亚洲av成人无码电影| 在线 丝袜 欧美 日韩 制服| 国产欧美精品一区二区三区四区| 久久悠悠精品综合网| 国产日本欧美在线观看| 国产精品激情电影| 免费在线播放第一区高清av| 日本午夜精品视频| 男人和女人做事情在线视频网站免费观看| www污在线观看| 啊啊啊射了视频网站| 成人午夜免费影院| 日韩精品一区二区三区视频| 色综合久久精品亚洲国产| 亚洲欧美一区二区三区在线观看| 欧美色欧美亚洲另类二区精品| 久久免费国产精品| 色哟哟亚洲精品一区二区| 一区二区在线观看视频在线| 国产精品少妇自拍| 免费久久久久久久久| 不卡一区二区三区四区五区| 国产精品白嫩白嫩大学美女| 久久精品一偷一偷国产| 制服丝袜在线第一页| 特级西西444www高清大视频| jizzjizzjizz孕妇| 亚洲男同性视频| 日韩欧美不卡在线| 女人天堂av在线播放| 午夜影院在线观看国产主播| 在线免费看黄视频| 99久久久精品免费观看国产| 国产精品久久一区主播| 国产精品50页| 天天综合天天综合| 日韩精品一区在线观看| 亚洲一区尤物| 亚洲每日在线| 很黄很黄激情成人| 1区1区3区4区产品乱码芒果精品| 国产亚洲欧美精品久久久www| 青娱乐一区二区| 高清在线不卡av| 五月婷婷久久久| 国产免费黄色小视频| 日本高清视频在线观看| 色综合久久综合网97色综合| 亚洲a级在线播放观看| 欧美三级日本三级少妇99| 久久久精品一区二区涩爱|