Innodb存儲引擎 讀書筆記

1.緩衝池是佔最大塊內存的部分,用來存放各類數據的緩存。因爲Innodb存儲引擎的工做方式老是將數據庫文件按頁(每頁16K)讀取到緩衝池,而後按最近最少LRU的算法保留在緩衝池中的緩存數據。若是數據庫文件須要修改,老是首先修改緩衝池中的頁,發生修改後,該頁即爲髒頁,而後再按照必定的頻率將緩衝池的髒頁刷新到文件。P22 算法

2.Innodb開創性的設計了插入緩衝,對於非彙集索引的插入或更新,不是每一次直接插入索引頁,而是先判斷緩衝池中是否包含該頁。若是在,則直接插入,不在則先插入到一個緩衝池中,而後在以必定的頻率執行緩衝和非彙集索引頁子節點的合併工做。這時一般能將多個插入合併到一個操做中(在一個索引頁中),提升了性能。P34 數據庫

3.自適應哈希索引,對索引進行hash來快速查找。Innodb自動根據訪問的頻率和模式來爲某些頁創建hash索引P38 緩存

4.表空間由多個段組成,常見的段有數據段、索引段、回滾段。數據段即爲B+樹的葉節點,索引段即爲非葉節點 P75 性能

5.Compact行記錄方式:Null值不佔存儲空間,無論是定長或是不定長。行記錄是經過鏈表的方式來串聯 P88  spa

6.Varchar(N) 中的N是字符的長度,最大支持爲65535個字節,當utf8gbk時,n的最大值都是不一樣的。 設計

7.每一個頁大小爲16KB,當例如varchar的字節數超過該值時,即發生行溢出時,這個存放行溢出的頁類型爲Uncompress BLOB Page 索引

8.輔助索引,頁級別不包含行的所有數據,其中包含了一個書籤,用來告訴哪裏能夠找到對飲索引的的行數據,即相應行的彙集索引鍵。P174 內存

9.B+樹是一棵矮的樹,由於硬盤IO操做是高消耗的,因此通常的查詢有一到兩次的硬盤io就行了,因此通常的查詢操做都在0.01ms左右 hash

相關文章
相關標籤/搜索