mysql 索引类型 bitmap_理解数据库中的常见索引类型

在数据库中,索引能加快数据库的查询速度。下面就来理解一些常见的索引类型:

B-Tree

Bitmap

Clustered

Non-unique

unique

索引有很多种类型,可以为不同的场景提供更好的性能。在MySQL中,索引是在存储引擎层而不是服务器层实现的。所以,并没有统一的索引标准:不同存储引擎的索引的工作方式并不一样,也不是所有的存储引擎都支持所有类型的索引。即使多个存储引擎支持同一种类型的索引,其底层的实现也可能不同。

B-Tree索引

当人们谈论索引的时候,如果没有特别指明类型,那多半说的是B-Tree索引,它使用B-Tree数据结构来存储数据。大多数MySQL引擎都支持这种索引。

B-Tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。

B-Tree索引能够加快访问数据的速度,因为存储引擎不再需要进行全表扫描来获取需要的数据,取而代之的是从索引的根节点开始进行搜索。

Bitmap索引

位图索引(bitmap index)技术是一类特殊的数据库索引技术,其索引使用bit数组(或称bitmap、bit set、bit string、bit vector)进行存储与计算操作。

位图索引可以看作是存储了大量bit位的bit序列,并且通过这些bit序列上的按位操作来响应查询请求,同时每个bit序列中的位数与数据表中的行数是一致的。

Clustered索引

聚合索引(clustered index),表中记录的物理顺序与键值的索引顺序相同。一个表只能有一个聚合索引。

优点是查询速度快,因为一旦具有第一个索引值的记录被找到,具有连续索引值的记录也一定物理的紧跟其后。

缺点是对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速度。在插入新记录时数据文件为了维持 B+Tree 的特性而频繁的分裂调整,十分低效。

建议使用聚合索引的场合为:

某列包含了小数目的不同值。

排序和范围查找。

Non-unique索引

非唯一索引(non unique index)是在表上一个或者多个字段组合建立的索引,这个或者这些字段的值组合起来在表中可以重复,不要求唯一。

unique索引

唯一索引(unique index)是在表上一个或者多个字段组合建立的索引,这个或者这些字段的值组合起来在表中不可以重复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值