mysql innodb引擎學習

最近回頭看了一下《mysql從入門到放棄》這本書,專門看了看我們經常使用的innodb引擎,現在記錄一下學習的內容吧。

有錯誤請指正。

Mysql5.5後默認引擎爲innodb

innodb特性

innodb支持事務,支持行鎖,支持外鍵。是一個專門爲大容量存儲設計的存儲引擎。默認索引b+tree。

關於事務,可以參照:mysql 事務ACID

關於行鎖,可以參照: mysql 行鎖

B-tree

關於B-tree這裏先簡述一下,後續有空補上關於b-tree 和b+tree的內容。

B-tree是一種專門爲外部存儲設備設計平衡多路查找樹。磁盤存儲是分磁盤塊的,每個塊存儲他的主鍵還有data,b-tree將數據排序,然後再數據前後分別有指針指向小於, 等於,大於他的數據所在磁盤塊。這樣在儘量少的IO次數下,通過二分查找,快速定位所需數據。

Mysql使用的b+tree是在b-tree基礎上改進的,將所有數據放在同一個葉節點上,減少查找樹的高度,更多減少磁盤IO次數。

所以這也就是爲什麼mysql主鍵推薦使用自增。因爲他的主鍵(聚集索引)在物理上連續,這樣在查找數據是,通過B+tree減少排序帶來的性能影響。並且主鍵較小,也減少了磁盤的佔用空間。

關於主鍵選擇自增,UUID還是雪花算法,回來再專門開一個博客寫吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章