全国旗舰校区

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

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

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

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

发布时间:2023-10-14 10:23:16
发布人:xqq

什么是聚集索引

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

什么是非聚集索引

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

什么是覆盖索引

覆盖索引是非聚集索引的一种特例,它包含了查询中的所有字段。查询过程中,数据库引擎可以只使用覆盖索引来完成查询,无需访问表数据,因此能大大提高查询效率。覆盖索引通常用于经常执行的查询,它覆盖了查询中的所有字段,从而避免了磁盘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.所有叶子结点位于同一层;

#it技术干货

相关文章

为什么数据库使用SQL语言?

为什么数据库使用SQL语言?

2023-10-14
为什么计算机用补码存储数据?

为什么计算机用补码存储数据?

2023-10-14
Oracle怎么连接数据库?

Oracle怎么连接数据库?

2023-10-14
数据库到底是怎么保存数据的?

数据库到底是怎么保存数据的?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取