SQL 中的索引
SQL 中的索引是什么?
SQL 中的索引是特殊的数据结构,旨在优化从数据库表中检索数据的操作速度。索引允许数据库引擎快速定位数据,而无需扫描整个表来查找所需信息,类似于书中的索引,可帮助您找到特定主题,而无需阅读每一页。
然而,虽然索引可以提高读取性能,但它们可能会给写入操作(INSERT、UPDATE、DELETE)带来开销,因为每当数据发生变化时也必须更新索引。
SQL 中的索引类型
1. 聚集索引
定义:聚簇索引决定了表中数据的物理顺序。每个表只能有一个聚簇索引,因为数据行本身就是按照此顺序存储的。
示例:在以 EmployeeID 为主键的 Employees 表中,在 EmployeeID 上创建聚集索引意味着数据将按照 EmployeeID 的顺序物理存储。
创建表员工(
员工 ID INT PRIMARY KEY,
名字 NVARCHAR(50),
姓氏 NVARCHAR(50),
部门 NVARCHAR(50)
);
好处:
对于范围查询很有效(例如,BETWEEN,>,<)。
对聚集索引列上的查询过滤的检索速度更快。
2.非聚集索引
定义:非聚集索引会创建一个单独的结构,该结构维护指向表中物理数据的指针。您可以在单个表上创建多个非聚集索引。
示例:如果您经常按 LastName 查询 Employees 表,则可以在 LastName 上创建非聚集索引来优化这些查询。
在员工(姓氏)上创建非聚集索引 idx_lastname ;
好处:
提高非主键列查询的性能。
允许多个非聚集索引以实现各种查询优化。
聚集索引和非聚集索引之间的主要区别
贮存:
聚集索引决定数据的物理存储顺序。
非聚集索引维护一个带有指向实际数据的指针的单独结构。
索引数量:
一个表只能有一个聚集索引。
一个表可以有多个非聚集索引。
实践示例
聚集索引:想象一下按书名字母顺序排列书籍的图书馆。这类似于聚集索引,其中数据(书籍)根据键(标题)排序。
非聚集索引:想象一下图书馆有一个卡片目录,您可以根据作者查找书籍。它的功能类似于非聚集索引,可以加快搜索速度,而无需改变书籍的物理排列方式。
结论
当您需要根据键的顺序(例如主键、时间戳)检索数据时,请使用聚集索引。
当您频繁查询其他列(例如 LastName、Email)时,请使用非聚集索引来增强检索性能。
这种结构可以帮助读者快速掌握 SQL 中的索引概念、可用的索引类型以及适合使用它们的场景。您的原始内容组织良好,增强功能进一步阐明了关键组件,以便全面理解。
5660

被折叠的 条评论
为什么被折叠?



