版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 MySQL鎖第十一講MySQL支持鎖類(lèi)型鎖定粒度:表級(jí)鎖MyISAM,memory,innodb,BDB行級(jí)鎖innodb(默認(rèn))頁(yè)級(jí)鎖BDBMyISAM表鎖MyISAM僅支持表鎖隱式加表鎖:insert,update,delete等DML顯式加表鎖:lock tables t1 read|write;特殊:5.1以及以前alter tableMySQL的表鎖模式兼容矩陣當(dāng)前鎖請(qǐng)求鎖無(wú)讀鎖寫(xiě)鎖讀鎖是是否寫(xiě)鎖是否否show status like %table_locks_immediate%;立即獲得鎖show status like %table_locks_waited%;等待鎖MyIS
2、AM表鎖調(diào)度默認(rèn)寫(xiě)鎖隊(duì)列優(yōu)先MyISAM鎖調(diào)度:1.-low-priority-updates2.set session|global low_priority_updates=13.insert,update,delete low_priority4.max_write_lock_count一個(gè)表超過(guò)一定寫(xiě)鎖時(shí),降低寫(xiě)請(qǐng)求優(yōu)先級(jí)InnoDB事務(wù)事務(wù)ACID并發(fā)訪(fǎng)問(wèn)帶來(lái)的讀一致性問(wèn)題:臟讀,不可重復(fù)讀,幻讀如何解決?讀之前加S鎖,再讀多版本控制(MVCC)innodb_lock_monitoruse test;create table innodb_lock_monitor(a int);In
3、noDB鎖模式行鎖1.S鎖2.X鎖表鎖1.IS鎖2.IX鎖在加行鎖之前必須先獲得表級(jí)意向鎖,否則等待innodb_lock_wait_timeout超時(shí)后根據(jù)innodb_rollback_on_timeout決定是否回滾事務(wù)InnoDB自增鎖AUTO-INC locking內(nèi)部計(jì)數(shù)器:select max(auto_inc_col) from t for update;表鎖機(jī)制,insert結(jié)束后立即釋放MySQL 5.1.221.開(kāi)始使用輕量級(jí)mutex實(shí)現(xiàn)自增2.innodb_autoinc_lock_modeInnoDB自增鎖insert分類(lèi):insert-likeinsert,rep
4、lace,insertselect,load datasimple inserts插入之前就能確定行數(shù),insert(on update除外),replacebulk inserts:插入之前不能確定行數(shù),insert|replaceselect,load datamixed-mode inserts:部分自增長(zhǎng),insert into .values(1,a),(null,b),(3,c)InnoDB自增鎖innodb_autoinc_lock_mode:0:(traditional)舊的表鎖方式,不推薦1:(consecutive)默認(rèn),對(duì)于simple inserts,用mutex對(duì)內(nèi)存
5、中的計(jì)數(shù)器累加。對(duì)于bulk inserts,使用傳統(tǒng)的auto-inc鎖。safe for binlog using statement2:(interleaved)對(duì)于所有insert,用mutex實(shí)現(xiàn)自增,性能最大化unsafe for binlog using statement建議使用row-basedInnoDB顯式加鎖selectfor updateselect.lock in share modeInnoDB行鎖實(shí)現(xiàn)算法通過(guò)對(duì)索引數(shù)據(jù)頁(yè)上的record加鎖算法實(shí)現(xiàn):1.record lock:單個(gè)行記錄的鎖2.gap lock:間隙鎖,鎖定一個(gè)范圍,不包括記錄本身3.next-
6、key lock:(record lock)+(gap lock) 在tx_isolation=REPEATABLE-READ和innodb_locks_unsafe_for_binlog=off情況下, innodb默認(rèn)算法 鎖住間隙加上間隙邊緣值的recordquestion:why next-key?show innodb status中hex值轉(zhuǎn)換【int】同下。order_id int(10) default NULL, 這種int屬于signed類(lèi)型,需要去掉符號(hào)位。【bigint】id bigint(20) unsigned NOT NULL AUTO_INCREMENT COM
7、MENT 主鍵這種直接十六進(jìn)制轉(zhuǎn)十進(jìn)制id bigint(20) signed NOT NULL AUTO_INCREMENT COMMENT 主鍵1.如果是正數(shù),這種去掉頭部符號(hào)位,再轉(zhuǎn)。2.如果是負(fù)數(shù),直接轉(zhuǎn),然后加上負(fù)號(hào)即可。【varchar】直接unhex即可InnoDB鎖關(guān)系矩陣死鎖MyISAM,無(wú)死鎖InnoDB逐行加鎖,導(dǎo)致死鎖死鎖產(chǎn)生的四個(gè)條件:1.互斥條件:一個(gè)資源每次只能被一個(gè)進(jìn)程使用; 2.請(qǐng)求與保持條件:一個(gè)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲得的資源保持不放; 3.不剝奪條件:進(jìn)程已獲得的資源,在沒(méi)使用完之前,不能強(qiáng)行剝奪; 4.循環(huán)等待條件:多個(gè)進(jìn)程之間形成一種互相循環(huán)等
8、待資源的關(guān)系死鎖show engine innodb statusG;查看死鎖- LATEST DETECTED DEADLOCK - 120111 9:39:36 * (1) TRANSACTION: 事務(wù)id,持續(xù)時(shí)間,讀取類(lèi)型發(fā)生死鎖時(shí)正在執(zhí)行的sql* (1) WAITING FOR THIS LOCK TO BE GRANTED: 想要獲取什么樣的鎖,并等待鎖住record的信息* (2) TRANSACTION:事務(wù)id,持續(xù)時(shí)間,讀取類(lèi)型發(fā)生死鎖時(shí)正在執(zhí)行的sql* (2) HOLDS THE LOCK(S): 當(dāng)前事務(wù)正持有的鎖* (2) WAITING FOR THIS LOCK TO BE GRANTED: 想要獲取什么樣的鎖,并等待* WE ROLL BACK TRANSACTION (1|2) 死鎖死鎖時(shí),innod
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年紀(jì)錄片導(dǎo)演團(tuán)隊(duì)聘用合同模板3篇
- 2024年高校校園網(wǎng)絡(luò)升級(jí)改造合同
- 2024新款:電子商務(wù)平臺(tái)技術(shù)開(kāi)發(fā)與推廣合同
- 2024政外管線(xiàn)接入工程施工01合同段施工后期維護(hù)與管理合同3篇
- 食品加工合同簽訂及執(zhí)行管理辦法
- 醫(yī)療保健彩鋼板施工合同模板
- 2025關(guān)于租房合同注意事項(xiàng)有些
- 鐵藝雕塑翻新施工合同
- 醫(yī)院建筑抹灰施工合同
- 2024年雞苗采購(gòu)合同的細(xì)節(jié)解讀
- 江西省景德鎮(zhèn)市2023-2024學(xué)年高二上學(xué)期1月期末質(zhì)量檢測(cè)數(shù)學(xué)試題 附答案
- 2024年辦公樓衛(wèi)生管理制度模版(3篇)
- 船舶防火與滅火(課件)
- 保險(xiǎn)公司2024年工作總結(jié)(34篇)
- 七、監(jiān)理工作重點(diǎn)、難點(diǎn)分析及對(duì)策
- 聲光影的內(nèi)心感動(dòng):電影視聽(tīng)語(yǔ)言學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 創(chuàng)新轉(zhuǎn)化管理智慧樹(shù)知到期末考試答案章節(jié)答案2024年山東大學(xué)
- 設(shè)備采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 2023-2024學(xué)年四川省成都市錦江區(qū)四年級(jí)數(shù)學(xué)第一學(xué)期期末考試試題含答案
- 課程設(shè)計(jì)---年產(chǎn)5.6萬(wàn)噸乙醇精餾塔的設(shè)計(jì)
- 冷軋輥激光毛化工藝簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論