11选五5爱彩乐
首頁 > 數據庫技術 > 詳細

數據庫索引(BTree索引和Hash索引)

時間:2019-04-06 12:58:41      閱讀:22      評論:0      收藏:0      [點我收藏+]

標簽:就是   strong   存儲引擎   sql   基于   條件   mysql   b+   tree   

索引

  索引是為了方便查找我們所需要的數據。

 mysql支持的索引數據類型

B-Tree索引的特點

B-Tree索引以B+Tree(樹)的結構存儲數據。

B-Tree索引能夠加快數據的查詢速度;

B-Tree更適合進行范圍查找;

在什么情況下可以用到B樹索引

全值匹配的查詢如:order_sn=’987654321’

匹配最左前綴的查詢

匹配列前綴查詢 

匹配范圍值得查詢

精確匹配左前列并范圍匹配另外一列

只訪問索引的查詢

BTree索引的使用限制

如果不是按照索引的最左列開始查找,則無法使用索引。

使用索引時不能跳過索引中的列

Not in 和<>操作無法使用索引

如果查詢中有某個列的范圍查詢,則其右邊所有的列都無法使用索引

 

Hash索引的特點

Hash索引時基于Hash表實現的,只有查詢條件精確匹配Hash索引中的所有列時,才能夠使用到Hash索引。

對于Hash索引中的所有列,存儲引擎都會為每一行計算一個Hash碼,Hash索引中存儲的就是Hash碼。

Hash索引的限制

Hash索引必須進行二次查找

Hash索引無法用于排序

Hash索引不支持部分索引查找也不支持范圍查找

Hash索引中Hash碼的計算可能存在Hash沖突

為什么要使用索引

索引大大減少了存儲引擎需要掃描的數據量

索引可以幫助我們進行排序避免使用臨時表

索引可以把隨機I/O變為順序I/O

索引是不是越多越好

索引會增加寫操作成本

太多的索引會增加查詢優化器的選擇時間

 

數據庫索引(BTree索引和Hash索引)

標簽:就是   strong   存儲引擎   sql   基于   條件   mysql   b+   tree   

原文:https://www.cnblogs.com/lovebean/p/10661264.html

(0)
(0)
   
舉報
評論 一句話評論(0
0條  
登錄后才能評論!
? 2014 bubuko.com 版權所有 魯ICP備09046678號-4
打開技術之扣,分享程序人生!
             

魯公網安備 37021202000002號

11选五5爱彩乐