非聚集索引
非聚集索引的数据存储在一个位置,索引存储在另一个位置索引带有指针指向数据存储位置,索引中的项目按索引值的顺序存储,而表中信息按另一种顺序存储。
非聚集索引与聚集索引具有相同的B-Tree 结构,但两个有重大区别:
数据行不按非聚集索引键的顺序排序和存储;
非聚集索引的叶层不包含数据页,相反,叶结点包含索引行。
有没有非聚集索引都不影响数据页的组织,因此每个表可以有多个非聚集索引,而不像聚集索引只能有一个。在SQL Server2005 中每个表可以创建非聚集索引最多为249个。
Ø 注意:由于非聚集索引使用索引页存储,因此它比聚集索引需要更多的存储空间,且检索效率较低。
数据库在搜索数据时,先对非聚集索引进行搜索,找到数据值在表中的位置,然后在该位置直接检索数据。这使得非聚集索引成为精确查询的最佳方法,因为索引包含了描述查询所搜索的数据值在表中的精确位置的条目。
要点:
以下数据类型不可用作非聚集索引的键:
ntext 、 text、 varchar(max) 、 nvarchar(max) 、 varbinary(max) 、xml 或 image
当用户需要用多种方法搜索数据时,非聚集索引很有用。如:用户可以频繁搜索园艺数据库来查找植物的俗名和学名。可以创建非聚集索引用于检索学名,创建聚集索引用于检索俗名。
考虑建索引的列
Ø 在经常需要搜索的列上;
Ø 在作为主键的列上;
Ø 在经常用在连接的列上;
Ø 在经常使用在WHERE子句中的列。
Ø 在经常需要排序的列上;
Ø 在经常需要根据范围进行搜索的列上;
不考虑建索引的列
Ø 对于那些在查询中很少使用或者参考的列;
Ø 对于那些只有很少唯一数据值的列;
Ø 对于那些定义为TEXT、NTEXT、IMAGE或BIT等数据类型的列;
Ø 当列的修改性能远远大于检索性能时。
分享到:
相关推荐
数据库索引总结,索引的作用?索引的注意事项?数据库索引的结构?
二、索引 * 索引的创建:可以使用Create index语句来创建索引,例如Create index idx_name on table_name (column_name) * 索引的使用:可以使用索引来加速查询速度,例如Select * from table_name where column_...
数据库索引是数据库管理系统中用于加速数据检索的关键结构。它们的工作原理类似于书籍的目录,允许快速定位所需的信息,而无需扫描整个数据集。在SQL Server和Oracle这两个广泛使用的数据库系统中,索引的使用和管理...
### 屏蔽数据库表索引的例子 在数据库管理与优化的过程中,索引是提高查询效率的重要工具之一。然而,在某些特定情况下,为了更好地控制查询性能或者解决其他问题,可能需要临时性地“屏蔽”(即不使用)某些索引。...
总结,数据库索引设计与优化是数据库管理的关键技能,合理的索引设计可以显著提升查询速度,降低系统资源消耗。但同时,也需要注意索引的维护和优化,避免过度索引带来的负面影响。在实践中,需要结合具体业务场景,...
### 创建数据库表与索引实验知识点总结 #### 一、实验背景与目标 **实验标题:** 创建数据库表与索引实验 **实验描述:** 本次实验旨在让学生掌握如何在数据库中创建表和索引,同时理解并实践数据完整性的重要性...
接下来,"数据库SQL优化总结之百万级数据库优化.pdf"可能深入到实际的优化实践。 1. **数据库架构设计**:在百万级数据量下,合理的设计能避免性能瓶颈,如垂直分割、水平分割,以及读写分离策略。 2. **缓存与...
总结来说,索引是数据库优化的重要手段,通过理解其概念、作用和分类,我们可以更好地设计和利用索引来提升MySQL数据库的查询效率。然而,在实际应用中,应根据表的具体使用情况来权衡是否创建索引,以及选择合适的...
以下是对复合索引、非复合索引以及不同场景下索引使用效果的实践总结。 首先,复合索引(也称为组合索引)是针对多个列创建的索引,如场景1中的IDX_TEST_01,它同时基于SEGMENT_NAME和EXTENT_ID。当查询条件包含这...
在本文的最后,我们将总结索引的设计和优化策略,并讨论索引在大型数据库中的应用。 索引是数据库中一个非常重要的概念,它可以大大提高查询效率和数据检索速度。在 SQL Server 中,索引的设计和优化是数据库管理员...
### 数据库索引详解 #### 一、为什么数据库需要索引? 在理解数据库索引之前,我们先来看看索引存在的必要性。想象一下图书馆里有上百万本书籍,如果我们需要找到一本书,比如《架构师之路》,没有索引的情况下,...
本文将对数据库相关的知识点进行详细总结,特别是针对计算机三级数据库考试的内容。 1. 数据库管理系统(DBMS)是操纵和管理数据库,控制数据资源使用的软件,如Oracle、SQL Server、MySQL等。 2. 事务是操作系统...
本文总结了基于Oracle数据库的索引优化方法,包括索引的概念、分类、设计和优化原则等。索引的概念是指为加速对表数据的访问而创建的数据段。索引类似于书的目录,包含表的列值和相应的ROW ID。ROW ID是 Oracle ...
【海量数据库的查询优化索引总结】 在当前的信息化时代,海量数据的处理已经成为许多企业和机构面临的重要挑战,尤其是在公安、金融、电商等行业的大型系统中。数据库作为数据的主要存储和管理工具,其性能直接影响...
一旦设置了TTL索引,MongoDB的`mongod`进程会启动一个后台线程,该线程定期检查索引字段,找到过期的文档,并将它们从数据库中移除。这个后台线程每60秒执行一次,意味着文档可能不会在精确的失效时间被删除,存在...
MYSQL数据库 索引章节内容大纲总结思维导图
数据库是信息技术中的重要组成部分,主要用于存储、管理以及...对于“三级数据库总结”的学习,考生需要对以上知识点有深入理解并能灵活应用。通过系统地复习和实践,可以提高在笔试和机试中的表现,从而提高通过率。
- 第二范式(2NF)是在1NF基础上,要求表有主键且所有非主键列完全依赖于主键,避免部分依赖。 - 第三范式(3NF)进一步要求非主键列直接依赖于主键,而非其他非主键列,消除传递依赖。 4. **事务的四种隔离级别*...