索引的种类与B*树索引 简单归纳总结

索引的种类:
1,B*树索引
2,位图索引
3,位图联结索引
4,基于函数的索引
5,应用域索引


B*树索引
最底层的是叶子节点(leaf node),包含索引键以及一个rowid。
中间是分支块(branch block),用于导航。
最顶是根块。
索引的叶子节点间构成了双向链表,可供索引区间扫描。例子:where x between 20 and 30;就可以在找到20后,水平地扫描叶子节点链表,而不


用再再索引结构中导航。
B*树是平衡树,有高度(height),从根块到叶子快的遍历,都会访问同样数目的块。大多数高度是2或3,所以基本都是2或3次I/O就能找到rowid。


select index_name,blevel,num_rows
from user_indexes
where table_name = 'BIG_TABLE'
blevel是分支层数,加1就是b树高度了。


什么情况下应该使用B*树索引
1.仅当要通过索引访问表中很少的一部分行(只占一个很小的百分比)。
对于瘦表(少列,列小),百分比为2%-3%;
对于肥表,百分比为20-25%;
原因:瘦表,即每行占得字节少,一个数据块就能包含更多的行;因为每读取一行都须完整I/O一个数据块,读取同样的行数时,瘦表所须


I/O的数据块就少,全表扫描可能效果更好。结论:越瘦的表,百分比越小,越倾向可以使用全表扫描。

2.回答一个查询:索引包含了足够的信息来回答整个查询,而根本不必访问表,这种情况下,索引可以作为一个较瘦版本的表。


数据在磁盘上的物理组织形式,也会对索引的使用性能有影响。
从一个1000行的索引返回数据所用的时间与从一个100000行的索引结构中返回数据的时间是一样的,因为高度一样,I/O次数就一样。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值