Mysql InnoDB讀書筆記

一些常用命令:

show engines;

show engine innodb status;

show variables like 'innodb_%';



mysql體系結構圖:


包括:

連接池組件

管理服務和工具組件

SQL接口

查詢分析器

優化器

cache組件

插件式存儲引擎(核心,包括了內存、索引,存儲管理等) 存儲引擎是基於表的,而不是數據庫

物理文件


InnoDB存儲引擎:

主要面向OLTP(事務處理類),特點:行鎖,外鍵,非鎖定讀(默認情況下,讀不好產生鎖),MVCC(多版本併發控制,提高併發速度),next-key locaking避免幻讀,

插入緩衝,二次寫,自適應哈希索引,預讀,聚簇索引(數據按主鍵順序存儲)。


MyISAM存儲引擎:

適用於OLAP類應用。不支持事務;表鎖;全文索引。對於MyISAM存儲引擎表,Mysql只緩存索引,數據文件的緩存交給操作系統。 其後續存儲引擎:Maria


InnoDB後臺線程:

IO Threads(insert buffer thread,log thread,read threads,write threads),Master thread,鎖監控線程,錯誤監控線程。


InnoDB的內存:

緩衝池(最大),redo log buffer,additional memory pool

InnoDB總是將數據庫文件按頁(16K)讀取到緩衝池,按LRU算法進行刷新,當數據庫文件需要修改,先修改緩衝池中的,再按一定頻率將髒頁刷新到數據庫

緩衝池中不僅有數據頁,索引頁,還有undo頁,插入緩衝,自適應哈希索引,InnoDB存儲的鎖信息,數據字典信息等。


Master thread:

master thread下包括幾個loop:

loop(主loop)

background loop

flush loop

suspend loop


master thread 源碼分析見讀書筆記2
























發佈了25 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章