千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:贵阳千锋IT培训  >  技术干货  >  什么是聚集索引、非聚集索引、覆盖索引?

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

来源:千锋教育
发布人:xqq
时间: 2023-10-16 03:10:02

什么是聚集索引

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

什么是非聚集索引

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

什么是覆盖索引

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

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

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

2023-10-16

强化学习pg with baseline 和 actor-critic 有什么区别?

2023-10-16

什么是机架式服务器?

2023-10-16

最新文章NEW

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

2023-10-16

zendesk是做什么的?

2023-10-16

UG编程有什么难点?

2023-10-16

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>