`
wangpengfei360
  • 浏览: 1059478 次
文章分类
社区版块
存档分类
最新评论

聚簇索引与非聚簇索引的区别

 
阅读更多

聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。

聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理相邻。例如,如果应用程序执行的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。这样有助于提高此类查询的性能。同样,如果对从表中检索的数据进行排序时经常要用到某一列,则可以将该表在该列上聚集(物理排序),避免每次查询该列时都进行排序,从而节省成本。


使用非聚集索引
非聚集索引与课本中的索引类似。数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置。索引中的项目按索引键值的顺序存储,而表中的信息按另一种顺序存储(这可以由聚集索引规定)。如果在表中未创建聚集索引,则无法保证这些行具有任何特定的顺序。

与使用书中索引的方式相似,Microsoft® SQL Server™ 2000 在搜索数据值时,先对非聚集索引进行搜索,找到数据值在表中的位置,然后从该位置直接检索数据。这使非聚集索引成为精确匹配查询的最佳方法,因为索引包含描述查询所搜索的数据值在表中的精确位置的条目。如果基础表使用聚集索引排序,则该位置为聚集键值;否则,该位置为包含行的文件号、页号和槽号的行 ID (RID)。例如,对于在 emp_id 列上有非聚集索引的表,如要搜索其雇员 ID (emp_id),SQL Server 会在索引中查找这样一个条目,该条目精确列出匹配的 emp_id 列在表中的页和行,然后直接转到该页该行。


注意:聚集索引会降低 insert,和update操作的性能,所以,是否使用聚集索引要全面衡量。

也可以查看这篇文章:
http://www.cnblogs.com/zhenyulu/articles/25794.html

分享到:
评论

相关推荐

    005.聚簇索引与非聚簇索引b+树实现有什么区别?.mp4

    聚簇索引与非聚簇索引b+树实现有什么区别?.mp4 聚簇索引与非聚簇索引b+树实现有什么区别?.mp4 聚簇索引与非聚簇索引b+树实现有什么区别?.mp4 聚簇索引与非聚簇索引b+树实现有什么区别?.mp4 聚簇索引与非聚簇索引...

    数据库中聚簇索引与非聚簇索引的区别[图文]

    在《数据库原理》里面,对聚簇索引的解释...聚簇索引与非聚簇索引的本质区别到底是什么?什么时候用聚簇索引,什么时候用非聚簇索引? 这是一个很复杂的问题,很难用三言两语说清楚。我在这里从SQL Server索引优化查询

    详解MySQL 聚簇索引与非聚簇索引

    1、聚集索引 表数据按照索引的顺序来存储的,也...对于非聚集索引,叶结点包含索引字段值及指向数据页数据行的逻辑指针,其行数量与数据表行数据量一致。 从物理文件中也可以看出 MyISAM(非聚集索引)的索引文件.MYI

    关于SQL Server中索引使用及维护简介

    聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎总是比使用非聚簇索引快。每张表只能建一个聚簇索引,并且建聚簇索引需要至少相当该表 120%的附加空间,以存放该表的副本和索引中间页。 SQL ...

    建立合理的索引提高SQL Server的性能

    由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎总是比使 用非聚簇索引快。每张表只能建一个聚簇索引,并且建聚簇索引需要至少相当该表120%的附加空间,以存放该表的副本和索引中间页。SQL ...

    数据库 索引及优化

    数据库 索引 优化 数据库索引好比是一本...索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。

    MySQL优化技巧大揭秘实战课视频.zip

    2-3 聚簇索引与非聚簇索引区别 2-4 主键索引与唯一性索引 2-5 单字段索引与符合索引区别 2-6 二分查找算法 2-7 平衡二叉树算法 2-8 BTREE算法 2-9 Hash算法与Hash索引 3-1 explain介绍 3-2 explian中id属性介绍 3-3 ...

    MySQL 的覆盖索引与回表的使用方法

    两大类索引 使用的存储引擎:MySQL5.7 InnoDB 聚簇索引 * 如果表设置了主键,则主键就是聚...普通索引也叫二级索引,除聚簇索引外的索引,即非聚簇索引。 InnoDB的普通索引叶子节点存储的是主键(聚簇索引)的值,而My

    SQL Server 聚集索引和非聚集索引的区别分析

    聚集索引:物理存储按照索引排序 非聚集索引:物理存储不按照索引排序

    最新150道MySQL大厂面试题课程

    005.聚簇索引与非聚簇索引b+树实现有什么区别? 006.说一下B+树中聚簇索引的查找(匹配)逻辑 007.说一下B+树中非聚簇索引的查找(匹配)逻辑 008.平衡二叉树,红黑树,B树和B+树的区别是什么?都有哪些应用场景? ...

    MySQL小面试题!!!!!

    聚簇索引中主键索引和数据在一起,都在叶子节点中,非聚簇索引中,索引和数据是分开的。 建立在主键上的是主键索引。我们自己建的索引基本上都是非聚簇索引。 在非聚簇索引中查询数据,还需要根据主键到聚簇索引中...

    SQL SERVER建立索引.pdf

    二、聚簇索引和非聚簇索引 三、索引属性 四、用SQL建立索引 五、用事务管理器建立索引 六、创建索引的方法和索引的特征 1.创建索引的方法 2.索引的特征 七、索引的类型 1.聚簇索引的体系结构 2.非聚簇索引的体系...

    Oracle Index 索引介绍

    NULL 博文链接:https://dolphin-ygj.iteye.com/blog/444147

    【含动画效果】mysql索引原理与最佳实践.pptx

    接着介绍mysql底层存储实现段簇页,和聚簇索引非聚簇索引包括联合索引的关系。最后列举一些sql是否可走索引,涉及最左匹配原则、索引覆盖、范围查询等原则,以及sql优化建议。 笔者使用此ppt分享,取得了较好的现场...

    MySQL自整理超全精华版面试八股文

    非聚簇索引一定会回表查询吗?(要盖索) 联合索引 最左前缀匹配原则 剑建索引的建议 索引失效的场景 日志 MySQL的三个日志 事务 什么是事务? 事务的四大特性(ACID) 并发事务带来的问题 事务的隔离级别 MySQL事务的...

    Mysql索引步骤及优化

     索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快  要注意的是,建立太多的索引将会影响...

    2022年MySQL最新面试题,很全,已拿大厂 offer

    6、讲一讲聚簇索引与非聚簇索引? 7、百万级别或以上的数据如何删除 8、什么是最左前缀原则?什么是最左匹配原则 9、数据库为什么使用B+树而不是B树 10、非聚簇索引一定会回表查询吗? 11、有哪些情况, 索引会失效, ...

    MySQL第二天:查询,索引及优化

    文章目录慢查询慢查询配置慢查询解读慢查询工具mysqldumpslowpt_query_digest索引聚簇索引跟非聚簇索引聚簇索引非聚簇索引:覆盖索引(Covering Index)总结:重点执行计划执行计划详解重点 MySQL优化参考 ...

    Java初级、中级、高级面试题及答案

    事务\事务隔离级别\Mysql默认隔离级别\串行化\存储引擎Innodb\Myisam\Inodb锁机制\MVCC\B树索引\哈希索引\聚簇索引\非聚簇索引\回表查询和覆盖索引\Explain语句\SQL语句的执行过程\范式\聚合函数\SQL优化\HTTP\多态\...

Global site tag (gtag.js) - Google Analytics