1索引的定義
索引是幫助mysql高效獲取資料的排好序的資料結構;
2 索引的本質
就是拍好序的資料結構;
3.為啥b+tree這種資料結構做索引的效率比其他的資料結構(紅黑樹,二叉樹,平衡二叉樹,hash表)效率高
具體的比較可以參考我之前的文章
主要是有以下幾個優點
b+樹的優點:
1、b+樹的層級更少。
相較於b樹b+每個非葉子節點儲存的關鍵字數更多,樹的層級更少所以查詢資料更快;
2、b+樹查詢速度更穩定。
b+所有關鍵字資料位址都存在葉子節點上,所以每次查詢的次數都相同所以查詢速度要比b樹更穩定;
3、b+樹天然具備排序功能。
b+樹所有的葉子節點資料構成了乙個有序鍊錶,在查詢大小區間的資料時候更方便,資料緊密性很高,快取的命中率也會比b樹高。
4、b+樹全節點遍歷更快。
b+樹遍歷整棵樹只需要遍歷所有的葉子節點即可,而不需要像b樹一樣需要對每一層進行遍歷,這有利於資料庫做全表掃瞄
4索引的作用
sql優化的可以提公升sql執行的效率
索引的本質
在我學習了索引如何使用後,我開始有一些問題,而最根本的原因就是我不知道本質上索引是什麼,所以本文就是針對索引的本質來講下他的原理的。但是只以btree為例,其他資料結構或則演算法的索引原理會在其他文章講解。1.什麼是索引?首先,當我看見有一種索引的建立語句是如下的時候,create index in...
索引的本質與挑選索引
2 索引的代價 3 索引使用策略與優化 4 參考鏈結 索引是幫助mysql高效獲取資料的資料結構。索引的本質其實就是b 樹,而b 樹是對b樹的優化。所以還得先從b樹說起。1 實現思路 索引的主要作用是為了查詢資料,對於樹這樣的資料結構來說,樹的高度越低,那麼查詢節點的效率也就越高。將二叉樹的結構改變...
索引的本質是排序
索引是經常用到的技術,但有些程式設計師對索引的原理了解不深,發現資料查詢效能有問題立刻就想起建索引,但效果常常也不盡人意。那麼到底什麼時候該用索引以及該怎麼用?我們來分析索引清理背後的技術原理就知道了。索引技術的初衷是為了快速從乙個大資料集中找出某個字段等於確定值 比如按身份證號找出某個人 的記錄。...