全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货  >  详情

什么是聚集索引、非聚集索引、覆盖索引?

来源:千锋教育
发布人:xqq
2023-10-16

推荐

在线提问>>

什么是聚集索引

聚集索引是数据库表的主键索引,以一种特定的顺序存储数据的逻辑视图。在一个表中,只能有一个聚集索引。聚集索引的特点在于,它将数据存储与索引绑定在一起,即索引的顺序就是数据的物理存储顺序。例如,在一个按主键升序排列的表中,主键值是聚集索引。

什么是非聚集索引

非聚集索引与聚集索引的存储方式完全不同,它与表数据分开存储,非聚集索引本身按照索引值排序,并包含一个指针,指向每个索引值对应的数据行。一个表可以有多个非聚集索引,它们通常用于提供除主键以外的查询入口。

什么是覆盖索引

覆盖索引是非聚集索引的一种特例,它包含了查询中的所有字段。查询过程中,数据库引擎可以只使用覆盖索引来完成查询,无需访问表数据,因此能大大提高查询效率。覆盖索引通常用于经常执行的查询,它覆盖了查询中的所有字段,从而避免了磁盘I/O操作。

总结

聚集索引、非聚集索引和覆盖索引都有各自的优点和用途,理解它们的区别和适用场景对于优化数据库性能非常重要。聚集索引用于定义数据的物理存储顺序,优化了读取速度;非聚集索引提供了额外的数据查询入口,可提高多条件查询的速度;覆盖索引则是通过包含所有查询字段来进一步优化查询性能。

延伸阅读

什么是B树

B-树是一种多路搜索树(并不一定是二叉的)

1970年,R.Bayer和E.mccreight提出了一种适用于外查找的树,它是一种平衡的多叉树,称为B树(或B-树、B_树)。

一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树。它或者是空树,或者是满足下列性质的树:

1、根结点至少有两个子女;

2、每个非根节点所包含的关键字个数 j 满足:┌m/2┐ – 1 <= j <= m – 1;

3、除根结点以外的所有结点(不包括叶子结点)的度数正好是关键字总数加1,故内部子树个数 k 满足:┌m/2┐ <= k <= m ;

4、所有的叶子结点都位于同一层。

特点:

是一种多路搜索树(并不是二叉的):

1.定义任意非叶子结点非常多只有M个儿子;且M>2;

2.根结点的儿子数为[2, M];

3.除根结点以外的非叶子结点的儿子数为[M/2, M];

4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)

5.非叶子结点的关键字个数=指向儿子的指针个数-1;

6.非叶子结点的关键字:K[1], K[2], …, K[M-1];且K[i] < K[i+1];

7.非叶子结点的指针:P[1], P[2], …, P[M];其中P[1]指向关键字小于K[1]的

子树,P[M]指向关键字大于K[M-1]的子树,其它P[i]指向关键字属于(K[i-1], K[i])的子树;

8.所有叶子结点位于同一层;

相关文章

生成对抗网络GAN和强化学习RL有什么紧密联系?

什么是倾斜摄影测量,目前的主要应用是在什么方面?

什么是服务器?

云电脑是什么?

Android平台上,flutter性能与原生相比差在哪里?

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取