MySQL解鎖與鎖表

MySQL鎖概述

相對其他數(shù)據(jù)庫而言,MySQL的鎖機制比較簡單酗失,其最顯著的特點是不同的存儲引擎支持不同的鎖機制启具。比如蕊玷,MyISAM和MEMORY存儲引擎采用的是表級鎖(table-level locking)心赶;BDB存儲引擎采用的是頁面鎖(page-level locking)扣讼,但也支持表級鎖;InnoDB存儲引擎既支持行級鎖(row-level locking)缨叫,也支持表級鎖椭符,但默認情況下是采用行級鎖。

MySQL這3種鎖的特性可大致歸納如下耻姥。

開銷销钝、加鎖速度、死鎖琐簇、粒度曙搬、并發(fā)性能

l? ? ? ? 表級鎖:開銷小,加鎖快鸽嫂;不會出現(xiàn)死鎖;鎖定粒度大征讲,發(fā)生鎖沖突的概率最高,并發(fā)度最低据某。

l? ? ? ? 行級鎖:開銷大,加鎖慢诗箍;會出現(xiàn)死鎖癣籽;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高。

l? ? ? ? 頁面鎖:開銷和加鎖時間界于表鎖和行鎖之間筷狼;會出現(xiàn)死鎖瓶籽;鎖定粒度界于表鎖和行鎖之間,并發(fā)度一般埂材。

MyISAM表鎖

MyISAM存儲引擎只支持表鎖塑顺,這也是MySQL開始幾個版本中唯一支持的鎖類型。隨著應用對事務完整性和并發(fā)性要求的不斷提高俏险,MySQL才開始開發(fā)基于事務的存儲引擎严拒,后來慢慢出現(xiàn)了支持頁鎖的BDB存儲引擎和支持行鎖的InnoDB存儲引擎(實際 InnoDB是單獨的一個公司,現(xiàn)在已經(jīng)被Oracle公司收購)竖独。但是MyISAM的表鎖依然是使用最為廣泛的鎖類型裤唠。本節(jié)將詳細介紹MyISAM表鎖的使用。

查詢表級鎖爭用情況

可以通過檢查table_locks_waited和table_locks_immediate狀態(tài)變量來分析系統(tǒng)上的表鎖定爭奪:

mysql> show status like 'table%';

+-----------------------+-------+

| Variable_name? ? ? ? | Value |

+-----------------------+-------+

| Table_locks_immediate | 2979? |

| Table_locks_waited? ? | 0? ? |

+-----------------------+-------+

2 rows in set (0.00 sec))

如果Table_locks_waited的值比較高莹痢,則說明存在著較嚴重的表級鎖爭用情況种蘸。

獲取InnoDB行鎖爭用情況? ?

可以通過檢查InnoDB_row_lock狀態(tài)變量來分析系統(tǒng)上的行鎖的爭奪情況:

mysql> show status like 'innodb_row_lock%';

+-------------------------------+-------+

| Variable_name? ? ? ? ? ? ? ? | Value |

+-------------------------------+-------+

| InnoDB_row_lock_current_waits | 0? ? |

| InnoDB_row_lock_time? ? ? ? ? | 0? ? |

| InnoDB_row_lock_time_avg? ? ? | 0? ? |

| InnoDB_row_lock_time_max? ? ? | 0? ? |

| InnoDB_row_lock_waits? ? ? ? | 0? ? |

+-------------------------------+-------+

5 rows in set (0.01 sec)

如果發(fā)現(xiàn)鎖爭用比較嚴重,如InnoDB_row_lock_waits和InnoDB_row_lock_time_avg的值比較高竞膳,還可以通過

解鎖

第一種

show processlist;

找到鎖進程航瞭,kill id ;

第二種

mysql>UNLOCK TABLES;

鎖表

鎖定數(shù)據(jù)表,避免在備份過程中顶猜,表被更新

mysql>LOCK TABLES tbl_name READ;

為表增加一個寫鎖定:

mysql>LOCK TABLES tbl_name WRITE;

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沧奴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子长窄,更是在濱河造成了極大的恐慌滔吠,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挠日,死亡現(xiàn)場離奇詭異疮绷,居然都是意外死亡,警方通過查閱死者的電腦和手機嚣潜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門冬骚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人懂算,你說我怎么就攤上這事只冻。” “怎么了计技?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵喜德,是天一觀的道長。 經(jīng)常有香客問我垮媒,道長舍悯,這世上最難降的妖魔是什么航棱? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮萌衬,結果婚禮上饮醇,老公的妹妹穿的比我還像新娘。我一直安慰自己秕豫,他們只是感情好朴艰,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著馁蒂,像睡著了一般呵晚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沫屡,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天饵隙,我揣著相機與錄音,去河邊找鬼沮脖。 笑死金矛,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的勺届。 我是一名探鬼主播驶俊,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼免姿!你這毒婦竟也來了饼酿?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤胚膊,失蹤者是張志新(化名)和其女友劉穎故俐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體紊婉,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡药版,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了喻犁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片槽片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肢础,靈堂內(nèi)的尸體忽然破棺而出还栓,到底是詐尸還是另有隱情,我是刑警寧澤传轰,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布蝙云,位于F島的核電站,受9級特大地震影響路召,放射性物質發(fā)生泄漏勃刨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一股淡、第九天 我趴在偏房一處隱蔽的房頂上張望身隐。 院中可真熱鬧,春花似錦唯灵、人聲如沸贾铝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垢揩。三九已至,卻和暖如春敛瓷,著一層夾襖步出監(jiān)牢的瞬間叁巨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工呐籽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锋勺,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓狡蝶,卻偏偏與公主長得像庶橱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贪惹,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345