亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

在我們開發(fā)的過程中,使用全局鎖和表鎖的場景比較少,接觸的也相對(duì)少一點(diǎn),下面主要介紹一下。

全局鎖

FTWRL

全局鎖就是對(duì)整個(gè)數(shù)據(jù)庫實(shí)例加鎖,MySQL 提供了 flush tables with read lock (FTWRL) 的方式去加全局鎖。當(dāng)你需要讓整個(gè)庫處于只讀狀態(tài)的時(shí)候,就可以使用這個(gè)命令了,之后所有線程的更改操作都會(huì)被阻塞。

mysqldump

mysqldump 是官方提供的備份工具,可以通過 --single-transaction 參數(shù)來啟用可重復(fù)讀隔離級(jí)別,從而可以拿到一個(gè)一致性視圖。

set global readonly = true

通過上述命令可以讓全庫進(jìn)入只讀狀態(tài),但是在開發(fā)當(dāng)中,事務(wù)框架往往會(huì)利用這個(gè)參數(shù)來處理讀寫分離。所以通常情況下,還是不建議使用這種方式。

表級(jí)鎖

MySQL 的表級(jí)鎖有 2 種:表鎖 和 元數(shù)據(jù)鎖。

表鎖

表鎖可以使用 lock tables T read/write , 可以使用 unlock tables 主動(dòng)釋放鎖,也可以在客戶端斷開的時(shí)候自動(dòng)釋放鎖。

MDL (metadata lock)

MDL 沒有顯示的命令,當(dāng)執(zhí)行改表語句時(shí),MDL 會(huì)保證讀寫的正確性。MySQL 在 5.5 版本以后引入了 MDL 鎖,當(dāng)對(duì)一個(gè)表做 增刪改查 的時(shí)候,加 MDL 讀鎖;當(dāng)要多表結(jié)構(gòu)做變更的時(shí)候,加 MDL 寫鎖。

  1. MDL 讀鎖之間不互斥,因此可以有多個(gè)線程同時(shí)對(duì)一張表 增刪改查。
  2. MDL 讀-寫、寫-寫之間是互斥的,因此如果同時(shí)有 2 個(gè)線程給表加字段,則需要順序執(zhí)行。

當(dāng)我們在線上更改表字段的時(shí)候,可能會(huì)造成長時(shí)間的服務(wù)不可用。流程如下:

MySQL全局鎖表鎖&行鎖

分享到:
標(biāo)簽:MySQL
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評(píng)定2018-06-03

通用課目體育訓(xùn)練成績評(píng)定