哈希索引
hash表是以鍵值對存儲數(shù)據(jù)的唠椭,通過對key做hash運算從而定位到直接的元素
1忍饰、檢索效率高
2、不能使用范圍查詢力崇;允許"=","IN"和"<=>"查詢赢织;不允許WHERE price > 100查詢
3、不能避免表掃描于置;
4、為了減少hash碰撞饱狂,需要執(zhí)行一個負載因子宪彩,也就是說需要空出一些空間,來減少hash沖突俊柔,所以當數(shù)據(jù)量很大時活合,會浪費較多的空間
二叉樹
image.png
如果我們需要查找id=12的用戶信息,利用我們創(chuàng)建的二叉查找樹索引留晚,只需要3次即可找到匹配的數(shù)據(jù)告嘲。如果在表中一條條的查找的話,我們需要6次才能找到赋焕。
平衡二叉樹
1仰楚、左子樹和右子樹都是平衡二叉樹,且左子樹和右子樹的深度之差的絕對值(平衡因子 )不超過1僧界。也就是說AVL樹每個節(jié)點的平衡因子只可能是-1捂襟、0和1(左子樹高度減去右子樹高度)
2、樹的高度越高笆豁,查找速度越慢
B樹索引
一個節(jié)點可以存儲兩個值,意味著它的樹高度煞赢,比二叉樹的高度更低哄孤,它的查詢速度就更快
image.png
B+樹
B+樹一直比較特殊的B樹,它只將數(shù)據(jù)存儲在葉子節(jié)點上凝危,同時每個葉子節(jié)點間還是指針相連
葉子節(jié)點中包含了key和value,key存儲的是1-10這些數(shù)字懦铺,value存儲的是數(shù)據(jù)存儲地址支鸡,非葉子節(jié)點中只是包含了key,不包含value急前。
所有相鄰的葉子節(jié)點包含非葉子節(jié)點瀑构,使用鏈表進行結(jié)合,有一定順序排序据块,從而范圍查詢效率非常高
image.png