3.6索引(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

2024-03-21
| 29页
| 37人阅读
| 0人下载
普通

内容正文:

关系数据库标准语言SQL 第3章 目录 01 SQL概述 02 数据库的创建 与管理 03 数据表及其操作 04 数据查询 05 视图 06 索引 本章主要内容 结构化查询语言(Structured Query Language,SQL)是关系数据库管理的标准语言,具有数据定义、数据查询、数据操纵和数据控制四个方面的功能。SQL结构简单,功能齐全,是目前广泛应用的关系数据库查询语言。 本章主要介绍SQL Server 2019数据库管理系统各种工具的使用和SQL的使用。 索引 第3章 06 3.6 索引 用户对数据库最基本、最频繁的操作是数据查询。一般情况下,数据库在进行查询操作时需要对整个数据表进行扫描。当表中的记录很多时,扫描数据需要很长的时间,这就造成了系统资源的浪费。为了提高检索数据的能力,数据库引入了索引机制。 3.6.1 索引的概念 如果要在一本书中快速地查找所需的信息,可以利用目录快速地进行查找,而不是一页页地查找。数据库中的索引与书籍中的目录类似,可以让数据库应用程序利用索引快速地查找到所需内容,而不需要扫描整个数据库。在图书中,目录是内容和页码的列表清单。在数据库中,索引就是表中数据和相应存储位置的列表。 索引是以表的列为基础的数据库对象,是为了加速对表中数据行的检索而创建的一种单独的存储结构。当SQL Server执行查询时,查询优化器评估可用于检索数据的每种方法,然后选择最有效的方法。可能采用的方法包括扫描表和扫描一个或多个索引(如果有)。扫描表时,查询优化器读取表中的所有行,并提取满足查询条件的行。扫描表时会有许多磁盘I/O操作,并占用大量资源。查询优化器使用索引时,搜索索引键列,查找到所需查询行的存储位置,然后从该位置提取匹配行。通常,搜索索引比搜索表要快得多,这是因为索引与表不同,一般每行包含的列非常少,且行遵循排序顺序。 3.6.1 索引的概念 索引作为单独的物理数据库结构,与其所依附的数据表是不能割裂开的。索引提供了一种对数据库表记录进行逻辑排序的内部方法。索引一旦建立成功,将由数据库引擎自动维护和管理。当对索引所依附的表进行记录的添加、更新或删除操作时,数据库引擎会及时更新与调整索引的内容,使其与表一致。在数据库系统中建立索引能够极大地改善系统的性能,并且使用索引能够加快数据检索的速度,索引具有以下几个方面的优点。 加速数据检索的速度。索引能够以一列或多列的值为基础,迅速查找表中的数据。 加快表与表之间的连接速度。连接、排序和分组都需要数据检索,在建立好索引后,其数据检索速度会加快,从而加速连接等操作。 在数据检索过程中使用查询优化器,提高系统性能。查询优化器依赖于索引,用于决定到底哪些索引可以使该查询最快。 确保数据记录的唯一性。通过给列创建唯一索引,可以保证表中的数据不重复。 在使用ORDER BY、GROUP BY子句进行数据检索时,利用索引机制,能够显著地减少查询中排序和分组消耗的时间。 3.6.1 索引的概念 索引虽然可以提高查询的速度,但是需要牺牲一定的系统性能。创建索引和维护索引需要耗费时间,对表中数据进行插入、删除和修改操作时,要进行索引维护。另外,索引还占有一定的物理存储空间。因此,对表中的列是否创建索引及如何创建索引,需要进行判断评估。创建索引应考虑的主要因素如下。 一个表如果建有大量索引会影响INSERT、UPDATE和DELETE语句的性能,因为当表中的数据更改时,所有索引都需要进行适当的调整。 避免对经常更新的表建立过多的索引,并且索引应保持较窄,即列要尽可能少。 使用多个索引可以提高更新少而数据量大的表的查询性能。大量索引可以提高不修改数据的表的查询性能,因为查询优化器有更多的索引可供选择,从而可以确定最快的访问方法。 对简单的表进行索引可能不会产生优化效果,因为查询优化器在遍历用于搜索数据的索引时,花费的时间可能比执行表的扫描还长。因此,简单的表的索引可能从来不使用,但却必须在表中的数据更改时进行维护。 对于查询中很少涉及的列或者重复值比较多的列,不要建立索引。 定义主键和外键的列,最好建立索引。 3.6.2 索引的类型 SQL Server 2019中包含两种最基本的索引,即聚集索引和非聚集索引。此外还有唯一索引、包含列索引、视图索引、全文索引、空间索引、筛选索引和XML索引等。 (1)聚集索引 在聚集索引中,索引键值的顺序与数据表中记录的物理顺序相同,即聚集索引决定了数据库表中记录行的存储顺序。由于记录行只能按一个物理顺序存储,因此每个表只能有一个聚集索引。 由于聚集索引的顺序与表中记录的物理存储相同,因此聚集索引适用于范围查找,但聚集索引不适用于频繁更改的列。 (2)非聚集索引 非聚

资源预览图

3.6索引(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
1
3.6索引(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
2
3.6索引(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
3
3.6索引(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
4
3.6索引(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
5
3.6索引(课件)-《数据库应用技术-SQL Server》同步教学(人民邮电版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。