6.全局鎖说墨、表級鎖

全局鎖

對整個庫實例加鎖骏全。
讓整個庫處于只讀狀態(tài)的時候,可以使用這個命令尼斧,之后其他線程的以下語句會被阻塞:
增刪改姜贡、建表、修改表結(jié) 更新類事務(wù)的提交

MySQL 提供了一個加全局讀鎖的方法棺棵,命令是Flush tables with read lock(FTWRL)楼咳。用 unlock tables 主動釋放鎖,也可以在客戶端斷開的時候自動釋放烛恤。

使用場景是母怜,做全庫邏輯備份, 把整庫每個表都 select 出來存成文本。

主庫上備份缚柏,業(yè)務(wù)基本上就得停擺苹熏;
從庫上備份,不能執(zhí)行主庫同步過來的 binlog币喧,會導致主從延遲

所以盡量不用, 而是利用事務(wù)的視圖, 除非 是MyISAM 這種不支持事務(wù)的引擎, 只要庫里面有表不支持事務(wù), 就不能用了

可重復讀 : 數(shù)據(jù)庫里在事務(wù)啟動時創(chuàng)建一個視圖,整個事務(wù)存在期間都用這個視圖轨域。

官方自帶的邏輯備份工具是 mysqldump。
mysqldump 使用參數(shù)–single-transaction ,導數(shù)據(jù)之前就會啟動一個事務(wù)粱锐,來確保拿到一致性視圖疙挺。這個過程中數(shù)據(jù)是可以正常更新的 (MVCC )

為什么不使用 set global readonly=true 的?
readonly 方式也可以讓全庫進入只讀狀態(tài)怜浅,但:
1.在有些系統(tǒng)中铐然,readonly 的值會被用來做其他邏輯,比如用來判斷一個庫是主庫還是備庫恶座。因此搀暑,修改 global 變量的方式影響面更大
2.在異常處理機制上有差異。如果執(zhí)行 FTWRL 命令之后由于客戶端發(fā)生異常斷開跨琳,那么 MySQL 會自動釋放這個全局鎖自点,整個庫回到可以正常更新的狀態(tài)。而將整個庫設(shè)置為 readonly 之后脉让,如果客戶端發(fā)生異常桂敛,則數(shù)據(jù)庫就會一直保持 readonly 狀態(tài)功炮,這樣會導致整個庫長時間處于不可寫狀態(tài),風險較高术唬。

表鎖

表語法是 lock tables … read/write薪伏。可以用 unlock tables 主動釋放鎖粗仓,也可以在客戶端斷開的時候自動釋放嫁怀。

在還沒有出現(xiàn)更細粒度的鎖的時候,表鎖是最常用的處理并發(fā)的方式借浊。InnoDB 支持行鎖塘淑,就不用了
innodb 在非索引上查詢的鎖 ,如果非要加鎖的話 是表級鎖 ....其實默認多版本并發(fā) 不加鎖

MDL(metadata lock)

MDL 不需要顯式使用,系統(tǒng)默認會加的,在訪問一個表的時候會被自動加上蚂斤。

作用是存捺,保證讀寫的正確性。
對一個表做增刪改查操作的時候曙蒸,加 MDL 讀鎖(讀鎖之間不互斥,可同時對一張表增刪改查)
對表做結(jié)構(gòu)變更操作的時候召噩,加 MDL 寫鎖

讀寫鎖逸爵、寫鎖 之間是互斥的,來保證變更 表結(jié)構(gòu) 操作的安全性凹嘲。

:


session C alter改表結(jié)構(gòu), 得了寫鎖, 又要改表中數(shù)據(jù), 要等讀鎖, 而事務(wù)沒結(jié)束, 寫鎖不會放開,阻塞住了, 下面都不能進行了,如果某查詢語句頻繁师倔,客戶端有重試機制,超時后會再起一個新 session 再請求的話周蹭,這個庫的線程很快就會爆滿趋艘。

所以,最好是 在 alter table 語句里面設(shè)定等待時間,如果在這個指定的等待時間里面能夠拿到 MDL 寫鎖最好凶朗,拿不到也不要阻塞后面的業(yè)務(wù)語句瓷胧,先放棄。之后開發(fā)人員或者 DBA 再通過重試命令重復這個過程棚愤。

MariaDB 支持 DDL NOWAIT/WAIT n 這個語法搓萧。

ALTER TABLE tbl_name NOWAIT add column ...
ALTER TABLE tbl_name WAIT N add column ...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宛畦,隨后出現(xiàn)的幾起案子瘸洛,更是在濱河造成了極大的恐慌,老刑警劉巖次和,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件反肋,死亡現(xiàn)場離奇詭異,居然都是意外死亡踏施,警方通過查閱死者的電腦和手機石蔗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門罕邀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人养距,你說我怎么就攤上這事诉探。” “怎么了铃在?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵阵具,是天一觀的道長。 經(jīng)常有香客問我定铜,道長阳液,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任揣炕,我火速辦了婚禮帘皿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘畸陡。我一直安慰自己鹰溜,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布丁恭。 她就那樣靜靜地躺著曹动,像睡著了一般。 火紅的嫁衣襯著肌膚如雪牲览。 梳的紋絲不亂的頭發(fā)上墓陈,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音第献,去河邊找鬼贡必。 笑死,一個胖子當著我的面吹牛庸毫,可吹牛的內(nèi)容都是我干的仔拟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼飒赃,長吁一口氣:“原來是場噩夢啊……” “哼利花!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起载佳,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤晋被,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后刚盈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羡洛,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了欲侮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崭闲。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖威蕉,靈堂內(nèi)的尸體忽然破棺而出刁俭,到底是詐尸還是另有隱情,我是刑警寧澤韧涨,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布牍戚,位于F島的核電站,受9級特大地震影響虑粥,放射性物質(zhì)發(fā)生泄漏如孝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一娩贷、第九天 我趴在偏房一處隱蔽的房頂上張望第晰。 院中可真熱鬧,春花似錦彬祖、人聲如沸茁瘦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甜熔。三九已至,卻和暖如春突倍,著一層夾襖步出監(jiān)牢的瞬間纺非,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工赘方, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弱左。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓窄陡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拆火。 傳聞我的和親對象是個殘疾皇子跳夭,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應(yīng)的列上鍵入重復值時,會觸發(fā)此異常们镜。 O...
    我想起個好名字閱讀 5,311評論 0 9
  • 全局鎖 對整個數(shù)據(jù)庫實例加鎖 使用場景:做全庫邏輯備份時币叹,為了保證備份期間的庫在同一個邏輯時間點,即一致性視圖(類...
    Java大寶寶閱讀 856評論 0 1
  • 第一天 7月13日OCP筆記: Oracle Ocp11g準備資料: OracleFundmentals 書 管理...
    fjxCode閱讀 2,813評論 0 4
  • 我一口便能辨認出 這是屬于故鄉(xiāng)的酒 越是身處故鄉(xiāng)之外 越是思念故鄉(xiāng)一切 我像品茶似的喝酒 眼里流下兩行清淚 這是屬...
    方須閱讀 390評論 0 3
  • iOS設(shè)備唯一標識符解決方案 記得當時做過一個電商項目模狭,甲方提出的要求是這樣的:用戶可以在不登錄的情況下颈抚,以游客模...
    MaxWellPro閱讀 1,137評論 2 3