本文對一個案例的有趣的地方進行分析畴栖,然后最后再綜述下replace into的流程哈打。基礎(chǔ)環(huán)境 進行一個Replace操作狱意,唯一索引沖突唧瘾,SQL執(zhí)行完后事務持有的鎖祸泪。 Inse...

本文對一個案例的有趣的地方進行分析畴栖,然后最后再綜述下replace into的流程哈打。基礎(chǔ)環(huán)境 進行一個Replace操作狱意,唯一索引沖突唧瘾,SQL執(zhí)行完后事務持有的鎖祸泪。 Inse...
作用 AHI是針對葉子節(jié)點的尸昧,作用是減少B樹尋址的代價。 如何做的 通過key(index_id+fileds+bytes):value(記錄的物理地址)來直接定位猖败。這里面有...
總感覺哪里不對,但是又說不上來 1幢尚、基本類型及底層實現(xiàn) 1.1破停、String 用途: 適用于簡單key-value存儲、setnx key value實現(xiàn)分布式鎖尉剩、計數(shù)器(原...
B樹 物理組織 表空間下一級稱為Segment理茎。Segment與數(shù)據(jù)庫中的索引相映射黑界。Innodb引擎內(nèi),每個索引(包括聚簇索引)對應兩個Segment:管理葉子節(jié)點的Seg...
InnoDB的Mini-transaction(簡稱mtr)是保證若干個page原子性變更的單位皂林。一個mtr中包含若干個日志記錄——mlog朗鸠,每個日志記錄都是對某個page—...
內(nèi)存并發(fā)控制 為了維護內(nèi)存結(jié)構(gòu)的一致性童社,比如Dictionary cache求厕、sync array著隆、trx system等結(jié)構(gòu)。InnoDB并沒有直接使用glibc提供的庫呀癣,...
鎖類型 元數(shù)據(jù)鎖 表鎖 IX 自增鎖 自增鎖模式通過參數(shù)innodb_autoinc_lock_mode來控制美浦,加鎖選擇參閱函數(shù)ha_innobase::innobase_l...
參數(shù)狀態(tài) made young表示old頁移動到LRU頭部,not young表示的是訪問的old區(qū)的頁项栏,但是訪問這頁的時間與上次訪問這個頁的時間小于innodb_old_b...
內(nèi)存組織 Chunk:包括兩部分:數(shù)據(jù)頁和數(shù)據(jù)頁對應的控制體浦辨,控制體中有指針指向數(shù)據(jù)頁。Buffer Chunks是最低層的物理塊沼沈,在啟動階段從操作系統(tǒng)申請流酬,直到數(shù)據(jù)庫關(guān)閉才...
前提 flush_list是包含dirty page并按修改時間有序的鏈表币厕,在刷臟時選擇從鏈表的尾部進行遍歷淘汰 異步IO,當異步寫page完成后芽腾,io helper線程會調(diào)...
刷臟的種類 批量刷臟 單頁刷臟操作批量刷臟是后臺線程發(fā)起旦装,單頁刷臟操作是用戶線程發(fā)起。批量刷臟中的同步刷臟是Redo空間不足引發(fā)的摊滔,單頁刷臟是沒有free的page引發(fā)的阴绢。 ...
調(diào)用棧 LRU中的flush會從flush list中remove掉,相反flush list的flush不會從lru中remove艰躺,因為可能是讀熱點呻袭。/* If no bl...
參數(shù) innodb_lru_scan_depth調(diào)用棧批量刷臟會從lru和flush list中flush。innodb_lru_scan_depth影響著lru的遍歷深度腺兴,...
buf_flush_page_cleaner_coordinator協(xié)調(diào)線程的主循環(huán)主線程以最多1s的間隔或者收到buf_flush_event事件就會觸發(fā)進行一輪的刷臟左电。批...
相關(guān)參數(shù) innodb_max_dirty_pages_pct_lwm innodb_max_dirty_pages_pct innodb_adaptive_flushing...