数据库索引学习笔记

本文介绍了数据库索引的概念及其重要性,详细解释了不同类型的索引,包括B+树、Hash索引和位图索引的特点及应用场景。重点讨论了B+树在范围查询中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是索引?
主要用于提高查询效率,也就是按条件查询的时候,先查询索引,再通过索引找到相关的数据,索引相当于记录了对某个关键词,指定到不同的文件,或者文件里的不同位置,当然索引自身也是通过文件来保存的。索引这个概念其实已经在很多地方用到过了,文件系统,内存,等等,学过操作系统的应该都不会陌生。
索引在数据库中分类及用法
索引在数据库中和在文件系统中就大不一样了,在文件系统和数据库中都分有顺序索引,hash索引,
但是在数据库中多了位图索引(请指正,这里可能不对,只是个人对于操作系统的记忆)。
下面具体说说数据库中的情况
顺序索引,一般是使用B+树,这个是B树的变种,B树的变种另外还有B-树和B*树。
---聚集索引 采用B-树,记录与索引值在一起
   非聚集索引 采用B+树 记录与索引分开

hash索引,这个用的比较少,oracle中好像没有吧...
位图索引,位图索引是一种针对多个字段的简单查询设计一种特殊的索引,适用范围比较小,只适用于字段值固定并且值的种类很少的情况,比如性别,只能有男和女,或者级别,状态等等,并且只有在同时对多个这样的字段查询时才能体现出位图的优势。



总结:
B+树最常用,性能也不差,用于范围查询和单值查询都可以。特别是范围查询,非得用B+树这种顺序的才可以了。
HASH的如果只是对单值查询的话速度会比B+树快一点,但是ORACLE好像不支持HASH索引,只支持HASH表空间。
位图的使用情况很局限,只有很少的情况才能用,一定要确定真正适合使用这种索引才用(值的类型很少并且需要复合查询),否则建立一大堆位图就一点意义都没有了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值