1,數(shù)據(jù)庫(kù)鎖理論概述
分類: 讀鎖柑肴、寫鎖霞揉。
行鎖,表鎖晰骑,頁鎖适秩。
1.1 表鎖:無死鎖绊序,加鎖快
加鎖:lock tables 表名 read(write)
釋放鎖: unlock tables;
查看鎖: show open tables
讀鎖 -》共享鎖 1,自己可以讀秽荞,2骤公,別人可以讀 3,不可以更新 4扬跋,不可以讀其他表
寫鎖-》獨(dú)占鎖 1阶捆,自己可以讀,2钦听,別人不可以讀洒试,不可以更新 3,可以更新 4朴上,不可以讀其他表
myisam 在執(zhí)行select 之前垒棋,會(huì)自動(dòng)給涉及的表加讀鎖,在執(zhí)行增刪改之前痪宰,會(huì)自動(dòng)給涉及的表加寫鎖叼架。
分析表鎖:
通過 table_locks_waited和table_locks_immediate變量分析表鎖定
查看 show status like '%table%'
table_locks_immediate:產(chǎn)生表級(jí)鎖定的次數(shù),表示可以立即獲取鎖的查詢次數(shù),每立即獲取鎖值加一。
table_locks_waited:出現(xiàn)表級(jí)鎖定爭(zhēng)用而發(fā)生等待的次數(shù)(不能立即獲取鎖的次數(shù)躏精,每等待一次值加一)障癌,此值高則說明存在著嚴(yán)重的表級(jí)鎖爭(zhēng)用情況。
另外,myisam讀寫鎖調(diào)度是寫優(yōu)先物喷,這也是myisam不適合做寫為主表的引擎的原因。因?yàn)閷戞i后,其他線程不能做任何操作蜡吧,大量查詢會(huì)使查詢很難得到鎖,從而造成永久阻塞占键。
1.2 行鎖
偏向Innodb存儲(chǔ)引擎昔善,開銷大,加鎖慢畔乙,會(huì)出現(xiàn)死鎖君仆。鎖定粒度最小,發(fā)生所沖突的概率最低牲距,并發(fā)度最高返咱。
Innodb與myISAm的最大不同有兩點(diǎn):1,支持事務(wù) 2牍鞠,采用行級(jí)鎖
語法: 1咖摹,通過索引項(xiàng)加鎖 2,通過select **** for update加鎖 难述,鎖定某一行后萤晴,其他操作會(huì)被阻塞吐句,知道鎖定行的會(huì)話commit。
InnoDB行鎖是通過給索引上的索引項(xiàng)加鎖來實(shí)現(xiàn)的店读,這一點(diǎn)MySQL與Oracle不同嗦枢,后者是通過在數(shù)據(jù)塊中對(duì)相應(yīng)數(shù)據(jù)行加鎖來實(shí)現(xiàn)的。
1)InnoDB這種行鎖實(shí)現(xiàn)特點(diǎn)意味著:只有通過索引條件檢索數(shù)據(jù)屯断,InnoDB才使用行級(jí)鎖
2)在不通過索引條件查詢的時(shí)候文虏,InnoDB確實(shí)使用的是表鎖,而不是行鎖
3)有了索引以后裹纳,在對(duì)索引字段查詢時(shí)择葡,使用的就是行級(jí)鎖,如果是使用相同的索引鍵值剃氧,是會(huì)出現(xiàn)鎖沖突的
4)當(dāng)表有多個(gè)索引的時(shí)候敏储,不同的事務(wù)可以使用不同的索引鎖定不同的行
1.3 間隙鎖
當(dāng)我們用范圍條件而不是相等條件檢索數(shù)據(jù)(并請(qǐng)求共享或排他鎖時(shí)),InnoDB會(huì)給符合條件的已有數(shù)據(jù)記錄的索引項(xiàng)加鎖朋鞍;對(duì)于鍵值在條件范圍內(nèi)但并不存在的記錄已添,叫做“間隙(GAP)”,InnoDB也會(huì)對(duì)這個(gè)“間隙”加鎖滥酥,這種鎖機(jī)制就是所謂的間隙鎖(Next-Key鎖)
分析行鎖:
查看 show status like 'innodb_row_lock%'
innodb_row_lock_current_waits 當(dāng)前正在等待鎖定的數(shù)量
innodb_row_lock_time 從系統(tǒng)啟動(dòng)到現(xiàn)在鎖定總時(shí)間長(zhǎng)度
innodb_row_lock_time_avg 每次等待所花費(fèi)平均時(shí)間
innodb_row_lock_time_max 從系統(tǒng)啟動(dòng)到現(xiàn)在等待最長(zhǎng)的一次花費(fèi)的時(shí)間
innodb_row_lock_waits 從系統(tǒng)啟動(dòng)到現(xiàn)在總共等待的次數(shù)
mysql鎖機(jī)制
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門原杂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人您机,你說我怎么就攤上這事穿肄。” “怎么了际看?”我有些...
- 文/不壞的土叔 我叫張陵咸产,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我仲闽,道長(zhǎng)脑溢,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任蔼囊,我火速辦了婚禮焚志,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘畏鼓。我一直安慰自己酱酬,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布云矫。 她就那樣靜靜地躺著膳沽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪让禀。 梳的紋絲不亂的頭發(fā)上挑社,一...
- 文/蒼蘭香墨 我猛地睜開眼糜工,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼弊添!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捌木,我...
- 序言:老撾萬榮一對(duì)情侶失蹤油坝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后刨裆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澈圈,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年崔拥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了极舔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站贴膘,受9級(jí)特大地震影響卖子,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜刑峡,卻給世界環(huán)境...
- 文/蒙蒙 一洋闽、第九天 我趴在偏房一處隱蔽的房頂上張望玄柠。 院中可真熱鬧,春花似錦诫舅、人聲如沸羽利。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽这弧。三九已至,卻和暖如春虚汛,著一層夾襖步出監(jiān)牢的瞬間匾浪,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓殉疼,卻偏偏與公主長(zhǎng)得像梯浪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瓢娜,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 一挂洛、定義 鎖是計(jì)算機(jī)協(xié)調(diào)多個(gè)進(jìn)程或線程并發(fā)訪問某一資源的機(jī)制在數(shù)據(jù)庫(kù)中,除傳統(tǒng)的計(jì)算資源(如CPU眠砾、RAM虏劲、I/O...
- 一、MySQL鎖機(jī)制 1.1 鎖分類 按鎖的粒度 劃分: 表鎖:表鎖是粒度最大的鎖褒颈,開銷小柒巫,加鎖快,不會(huì)出現(xiàn)死鎖谷丸,...
- 概述 數(shù)據(jù)庫(kù)鎖定機(jī)制簡(jiǎn)單來說堡掏,就是數(shù)據(jù)庫(kù)為了保證數(shù)據(jù)的一致性,而使各種共享資源在被并發(fā)訪問變得有序所設(shè)計(jì)的一種規(guī)則...
- 原文:http://blog.csdn.net/soonfly/article/details/70238902 ...
- 個(gè)人專題目錄[http://www.reibang.com/p/140e2a59db2c] 1. 概述 1.1 ...