本文對(duì)一個(gè)案例的有趣的地方進(jìn)行分析,然后最后再綜述下replace into的流程?;A(chǔ)環(huán)境 進(jìn)行一個(gè)Replace操作,唯一索引沖突,SQL執(zhí)行完后事務(wù)持有的鎖。 Inse...
本文對(duì)一個(gè)案例的有趣的地方進(jìn)行分析,然后最后再綜述下replace into的流程?;A(chǔ)環(huán)境 進(jìn)行一個(gè)Replace操作,唯一索引沖突,SQL執(zhí)行完后事務(wù)持有的鎖。 Inse...
作用 AHI是針對(duì)葉子節(jié)點(diǎn)的,作用是減少B樹(shù)尋址的代價(jià)。 如何做的 通過(guò)key(index_id+fileds+bytes):value(記錄的物理地址)來(lái)直接定位。這里面有...
總感覺(jué)哪里不對(duì),但是又說(shuō)不上來(lái) 1、基本類(lèi)型及底層實(shí)現(xiàn) 1.1、String 用途: 適用于簡(jiǎn)單key-value存儲(chǔ)、setnx key value實(shí)現(xiàn)分布式鎖、計(jì)數(shù)器(原...
基于組提交的并行復(fù)制 如何表示并行度 為了表示主庫(kù)并行度,在binlog row event增加了如下的標(biāo)識(shí)。 即在gtid_event中增加兩個(gè)字段: sequence_n...
B樹(shù) 物理組織 表空間下一級(jí)稱為Segment。Segment與數(shù)據(jù)庫(kù)中的索引相映射。Innodb引擎內(nèi),每個(gè)索引(包括聚簇索引)對(duì)應(yīng)兩個(gè)Segment:管理葉子節(jié)點(diǎn)的Seg...
InnoDB的Mini-transaction(簡(jiǎn)稱mtr)是保證若干個(gè)page原子性變更的單位。一個(gè)mtr中包含若干個(gè)日志記錄——mlog,每個(gè)日志記錄都是對(duì)某個(gè)page—...
內(nèi)存并發(fā)控制 為了維護(hù)內(nèi)存結(jié)構(gòu)的一致性,比如Dictionary cache、sync array、trx system等結(jié)構(gòu)。InnoDB并沒(méi)有直接使用glibc提供的庫(kù),...
鎖類(lèi)型 元數(shù)據(jù)鎖 表鎖 IX 自增鎖 自增鎖模式通過(guò)參數(shù)innodb_autoinc_lock_mode來(lái)控制,加鎖選擇參閱函數(shù)ha_innobase::innobase_l...
參數(shù)狀態(tài) made young表示old頁(yè)移動(dòng)到LRU頭部,not young表示的是訪問(wèn)的old區(qū)的頁(yè),但是訪問(wèn)這頁(yè)的時(shí)間與上次訪問(wèn)這個(gè)頁(yè)的時(shí)間小于innodb_old_b...
內(nèi)存組織 Chunk:包括兩部分:數(shù)據(jù)頁(yè)和數(shù)據(jù)頁(yè)對(duì)應(yīng)的控制體,控制體中有指針指向數(shù)據(jù)頁(yè)。Buffer Chunks是最低層的物理塊,在啟動(dòng)階段從操作系統(tǒng)申請(qǐng),直到數(shù)據(jù)庫(kù)關(guān)閉才...
前提 flush_list是包含dirty page并按修改時(shí)間有序的鏈表,在刷臟時(shí)選擇從鏈表的尾部進(jìn)行遍歷淘汰 異步IO,當(dāng)異步寫(xiě)page完成后,io helper線程會(huì)調(diào)...
刷臟的種類(lèi) 批量刷臟 單頁(yè)刷臟操作批量刷臟是后臺(tái)線程發(fā)起,單頁(yè)刷臟操作是用戶線程發(fā)起。批量刷臟中的同步刷臟是Redo空間不足引發(fā)的,單頁(yè)刷臟是沒(méi)有free的page引發(fā)的。 ...
調(diào)用棧 LRU中的flush會(huì)從flush list中remove掉,相反flush list的flush不會(huì)從lru中remove,因?yàn)榭赡苁亲x熱點(diǎn)。/* If no bl...
參數(shù) innodb_lru_scan_depth調(diào)用棧批量刷臟會(huì)從lru和flush list中flush。innodb_lru_scan_depth影響著lru的遍歷深度,...
buf_flush_page_cleaner_coordinator協(xié)調(diào)線程的主循環(huán)主線程以最多1s的間隔或者收到buf_flush_event事件就會(huì)觸發(fā)進(jìn)行一輪的刷臟。批...
相關(guān)參數(shù) innodb_max_dirty_pages_pct_lwm innodb_max_dirty_pages_pct innodb_adaptive_flushing...