欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > MySQL的全局鎖和表級鎖的具體使用

MySQL的全局鎖和表級鎖的具體使用

熱門標簽:400電話可以辦理嗎 智能外呼系統復位 拉卡拉外呼系統 大眾點評星級酒店地圖標注 高清地圖標注道路 臨清電話機器人 話務外呼系統怎么樣 外東北地圖標注 云南電商智能外呼系統價格

前言

在真實的企業開發環境中使用MySQL,MySQL肯定不會只有我一個人使用,而是一個團隊顯式的使用MySQL,或者是業務隱式的使用MySQL,那么多個用戶或者客戶端連接使用的時候,我們應該考慮一個問題:如果保證數據并發訪問的一致性呢?這一篇我就來聊聊MySQL的鎖,不涉及MySQL的事務隔離級別。

全局鎖

MySQL的全局鎖會關閉所有打開的表,并使全部的表處于只讀狀態,它們的命令為:

# 全局鎖,簡稱FTWRL
FLUSH TABLES WITH READ LOCK;

# 解鎖命令
UNLOCK TABLES;

對FTWRL進行實驗:(以下的所有實驗都是在MySQL8.0.22完成的)

session1 session2
FLUSH TABLES WITH READ LOCK;
select * from test limit 1;
(正常返回結果)
select * from test limit 1;
(正常返回結果)
insert into test(a,b,c) values(6,6,6);
(報錯)
insert into test(a,b,c) values(8,8,8);# sql1
(阻塞)
UNLOCK TABLES;
insert into test(a,b,c) values(8,8,8);# sql1
(session1解鎖后,sql1立馬執行成功)

從以上實驗可以得出:當執行FTWRL后,所有的表變成了只讀狀態,其他更新的操作將會被阻塞。

全局鎖的主要作用就是做全庫邏輯備份,也就是把數據庫的每個表都select出來存成文本。

當備份過程中,整個數據庫處于只讀狀態,風險也是及其的大。如果是在主庫備份,將會導致所有的業務表都不能修改數據;如果是在從庫備份,這個時候從庫不能執行主庫傳過來的binlog,會導致主從延遲。

好在InnoDB存儲引擎支持事務,mysqldump有一個參數single-transaction,可以在事務中創建一致性快照,然后進行所有表備份。在有這個參數下,備份期間可以進行數據修改,所以正常開發中建議使用InnoDB存儲引擎。

表級鎖

表級鎖分為兩種,一種是表鎖,另一種是元數據鎖。

表鎖

表鎖分為表讀鎖和表寫鎖,在MySQL的命令是:

# 表讀鎖
lock tables test read;

# 表寫鎖
lock tables test write;


接下來通過實驗看下表讀鎖和表寫鎖有什么區別吧

表讀鎖

session1 session2
lock tables test read;
select * from test limit1;
(正常返回結果)
select * from test limit 1;
(正常返回結果)
insert into test(a,b,c) values(6,6,6);
(報錯)
insert into test(a,b,c) values(8,8,8); # sql1
(阻塞)
unlock tables;
insert into test(a,b,c) values(8,8,8); # sql1
(session1解鎖后,sql1立馬寫入成功)

在session1會話加上了表讀鎖,這個時候session1和session2都可以正常的讀數據,但是session1寫數據會報錯,session2寫數據會被阻塞,等到session1解鎖了,session2的寫數據才能執行成功。

從這個實驗可以得出:表加上了表讀鎖之后,本線程和其他線程都可以讀數據,本線程寫數據會報錯,其他線程寫數據會阻塞。

表寫鎖

session1 session2
lock tables test write;
select * from test limi1;
(正常返回結果)
select * from test limit 1; # sql1
(阻塞)
unlock tables;
select * from test limit; # sql1
(session1解鎖后,sql1立馬返回結果)
lock tables test write;
insert into test(a,b,c) values(6,6,6);
(插入成功)
insert into test(a,b,c) values(8,8,8);# sql 2
(阻塞)
unlock tables;
insert into test(a,b,c) values(8,8,8);# sql2
(session1解鎖后,sql2立馬執行成功)

從以上實驗可以得出:表加上了表寫鎖之后,本線程可以進行讀寫操作,其他線程的讀寫操作都會被阻塞。

元數據鎖(Metadata Locking,簡稱:MDL鎖)

在MySQL中,數據庫的DDL不屬于事務范疇,如果你在session1中select一行數據,這個時候session2給這張表新增了一列xxx,這個時候可能會出現事務特性被破壞、binlog順序錯亂等bug(MySQL官網上有公布出類似的bug,感興趣可以自行去了解)。

為了解決以上的問題,從MySQL5.5.3引入了元數據鎖,MDL鎖不需要顯式使用,MySQL會默認加上,它的作用就是保證數據庫讀寫正確性。以下全部用MDL表示元數據鎖。

當你對一張表進行增刪查改的時候會默認加上MDL讀鎖;當你對一張表進行表結構更改的時候會默認加上MDL寫鎖。

session1 session2 session3 session4
begin;
select * from test lmi1;
(正常返回結果)
select * from test limit 1;
(正常返回結果)
alter table test add d int;
(阻塞)
select * from test limit 1;
(阻塞)

一開始session1會話查詢test的時候,獲取到了MDL讀鎖,可以正常查詢到數據。然后session2會話查詢數據也會獲取MDL讀鎖,不沖突,也可以正常查詢到數據返回。

但是到了session3會話的時候,需要獲取MDL寫鎖,這個時候因為session1的MDL讀鎖沒有釋放,所以會阻塞。后面session4也需要MDL讀鎖,但是因為session3被阻塞了,所以session4也會被阻塞。

假如這是一張線上業務表,這種場景將會使后面的任何操作都失效,表現出來就是這張表變得無法寫和讀。如果客戶端配置了MySQL重試機制的話,會在超時的時候重新建立一個session會話重新請求,然后MySQL就會因為線程不停新增而崩潰。

從上面的例子可以知道MDL鎖是在語句執行的時候默認加上的,但是語句執行完是不會釋放的,只有等整個事務提交了才會釋放MDL鎖。

所以對于我們開發者來說,在工作中應該盡量避免慢查詢、盡量保證事務及時提交、避免大事務等,對于DBA來說,也應該盡量避免在業務高峰期執行DDL操作。

總結

  • 全局鎖會讓所有的表變成只讀狀態,所有更新操作都會被阻塞
  • 表讀鎖是本線程和其他線程都可以讀,本線程寫會報錯,其他線程寫會阻塞
  • 表寫鎖是本線程可以讀寫,其他線程讀寫都會阻塞
  • 引入MDL鎖解決事務和DDL同時執行引發的bug

參考資料

  • 《深入淺出MySQL》第二版:20.3.8 什么時候使用表鎖
  • 《MySQL實戰45講》林曉斌

到此這篇關于MySQL的全局鎖和表級鎖的具體使用的文章就介紹到這了,更多相關MySQL 全局鎖和表級鎖內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySQL 到底是如何做到多版本并發的?
  • mysql過濾復制思路詳解
  • MySQL 外鍵(FOREIGN KEY)用法案例詳解
  • MySQL如何利用存儲過程快速生成100萬條數據詳解
  • Python接口自動化淺析pymysql數據庫操作流程
  • MySQL事務控制流與ACID特性
  • Mysql使用存儲過程快速添加百萬數據的示例代碼
  • MySQL去除重疊時間求時間差和的實現
  • Mysql數據庫中datetime、bigint、timestamp來表示時間選擇,誰來存儲時間效率最高
  • 基于Redo Log和Undo Log的MySQL崩潰恢復解析

標簽:阿里 山西 溫州 揚州 福州 定西 三明 無錫

巨人網絡通訊聲明:本文標題《MySQL的全局鎖和表級鎖的具體使用》,本文關鍵詞  MySQL,的,全局,鎖,和,表級,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL的全局鎖和表級鎖的具體使用》相關的同類信息!
  • 本頁收集關于MySQL的全局鎖和表級鎖的具體使用的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲国产第一区| 69堂国产成人免费视频| 久久久久久综合| 久久精品72免费观看| 在线观看国产免费视频| 51调教丨国产调教视频| 日韩毛片视频在线看| 精品亚洲国产成人av制服丝袜| 999精品免费视频| 欧美日本韩国一区| 亚洲专区一二三| 亚洲成人福利视频| 欧美日韩一区二区三区高清| 一区二区三区四区精品在线视频 | 亚洲视频在线观看一区| 国产91色综合久久免费分享| 懂色av粉嫩av蜜臀av一区二区三区| 国产调教视频一区| 国产成人日日夜夜| 美女的奶胸大爽爽大片| 亚洲色图一区二区| 中文字幕第10页| 欧美高清hd18日本| 天堂蜜桃一区二区三区| 国产精品无码网站| 精品成人一区二区| 国产剧情av麻豆香蕉精品| 久久99久久99精品免费看小说| 国产精品亲子伦对白| 不卡视频一二三| 欧美中文字幕一区二区三区亚洲| 亚洲一区在线播放| 日本黄色动态图| 精品国产免费视频| 国产ts人妖一区二区| 91久久久免费一区二区| 香蕉乱码成人久久天堂爱免费| 日本少妇xxxx| 2021国产精品久久精品| 国产ts人妖一区二区| 欧美性色黄大片手机版| 日韩和欧美的一区| 黄色裸体一级片| 亚洲另类在线视频| 黄色污在线观看| 国产日韩av一区二区| 不卡电影一区二区三区| 7777精品伊人久久久大香线蕉最新版| 日韩va亚洲va欧美va久久| 国产又黄又粗的视频| 国产精品国产三级国产aⅴ入口| 99re8在线精品视频免费播放| 91精品国产乱码久久蜜臀| 美腿丝袜亚洲三区| www.99re7| 午夜精品福利一区二区三区av| 九九热免费在线| 亚洲欧美电影院| 亚洲成人自拍偷拍| 精品人妻一区二区三区免费| 欧美一区二区女人| 国产成人精品aa毛片| 欧美日韩亚洲高清一区二区| 麻豆91在线播放| 欧洲日韩一区二区三区| 天堂va蜜桃一区二区三区漫画版| 日本黄色小视频在线观看| 亚洲女人****多毛耸耸8| 成人h动漫精品一区| 中文字幕永久在线不卡| 野外性满足hd| 亚洲免费av高清| 性猛交ⅹxxx富婆video| 中国毛片直接看| 亚洲高清免费在线| 欧美性猛交xxxx乱大交少妇| 亚洲电影第三页| 免费三级在线观看| 三级欧美韩日大片在线看| 国产日产精品一区二区三区的介绍| 午夜精品福利在线| 色综合视频在线观看| ...中文天堂在线一区| 96av麻豆蜜桃一区二区| 欧美精品一区二区三区在线播放 | jizz中文字幕| 亚洲综合色噜噜狠狠| 成人一级片免费看| 午夜成人在线视频| 欧美在线观看一二区| 国产精品一区二区果冻传媒| 精品三级在线看| 久久久一区二区三区捆绑**| 99久久综合99久久综合网站| 欧美成人一区二区三区在线观看| 91亚洲国产成人精品一区二区三 | 久久久亚洲精华液精华液精华液| 丰满人妻一区二区三区大胸| 国产欧美日韩精品一区| 欧美丰满少妇人妻精品| 一区二区三国产精华液| 手机在线免费看毛片| 国内精品伊人久久久久av一坑| 欧美放荡的少妇| 91视频.com| 国产精品久久久久久久久图文区| 一级黄色性视频| 日韩和的一区二区| 欧美精品久久久久久久多人混战 | 欧美精品一区二区精品网| 中文字幕人妻一区二区三区| 亚洲女同一区二区| 欧美在线视频第一页| 国产传媒久久文化传媒| 精品国产成人在线影院| 亚洲国产果冻传媒av在线观看| 亚洲一区二区三区激情| 日本伦理一区二区| 波多野结衣中文一区| 中文字幕国产一区| 国产精品久久久免费看| 国产在线视频一区二区| 亚洲777理论| 污污的视频在线免费观看| 久久99精品国产麻豆婷婷洗澡| 欧美一区二区日韩| 一本色道综合久久欧美日韩精品| 亚洲成人激情综合网| 欧美男女性生活在线直播观看| 97se亚洲国产综合自在线| 亚洲欧洲韩国日本视频| 91视频综合网| 99re热这里只有精品视频| 亚洲精品欧美二区三区中文字幕| 一本久道久久综合中文字幕| www.综合网.com| 亚洲视频每日更新| 91福利在线导航| 精品人妻无码中文字幕18禁| 亚洲影院理伦片| 欧美电影影音先锋| 水蜜桃av无码| 麻豆免费精品视频| 国产色91在线| 男人的天堂久久久| 91天堂素人约啪| 性欧美疯狂xxxxbbbb| 日韩一级在线观看| 不卡的av电影在线观看| 日韩码欧中文字| 欧美久久久久久蜜桃| 国产精品久久不卡| 极品少妇xxxx精品少妇偷拍| 国产亚洲精品bt天堂精选| 黄色一级大片在线免费观看| 成人ar影院免费观看视频| 亚洲精品菠萝久久久久久久| 欧美日本高清视频在线观看| a级一a一级在线观看| 久久精品国产77777蜜臀| 国产精品视频在线看| 色婷婷国产精品| 国产伦精品一区二区免费| 青青草97国产精品免费观看| 国产亚洲短视频| 色偷偷一区二区三区| 无码人妻精品一区二区三区99不卡| 免费观看日韩av| 久久日韩精品一区二区五区| 亚洲综合网在线| 亚洲无人区码一码二码三码| 美女视频免费一区| 国产精品国产三级国产aⅴ中文| 欧美日韩国产中文| 国产毛片欧美毛片久久久| 成人av一区二区三区| 午夜精品久久久| 中文字幕免费观看一区| 欧美另类一区二区三区| 国产精品久久久视频| 91丨九色porny丨蝌蚪| 奇米影视在线99精品| 国产精品久久看| 91精品国产综合久久婷婷香蕉| 久久久久久成人网| 久久久久99人妻一区二区三区 | 欧美亚洲愉拍一区二区| 91视频啊啊啊| 成人激情校园春色| 日韩精品久久久久久| 国产精品美女久久久久久2018 | 欧美日韩中字一区| 日韩一级av毛片| 精品无码av一区二区三区不卡| 激情综合色综合久久综合| 亚洲精品国产视频| 久久影院午夜片一区| 欧美日韩久久一区二区| 中文字幕观看av| 无遮挡aaaaa大片免费看|