SQL 索引

SQL 索引

SQL索引

SQL索引 是用于加快数据检索过程的特殊查找表。它们保存指向存储在数据库中的数据的指针,这使得在数据库表中定位所需数据记录变得更容易。

SQL索引的工作方式类似于书籍或期刊的索引。

虽然索引加速了数据检索查询(SELECT语句)的性能,但它会降低数据输入查询(UPDATE和INSERT语句)的性能。但是,这些索引对数据本身没有任何影响。

SQL索引需要在数据库中拥有自己的存储空间。尽管如此,用户无法在物理上查看它们,因为它们只是性能工具。

CREATE INDEX语句

可以使用 CREATE INDEX 语句在SQL中创建索引。此语句允许您命名索引,指定表和要索引的列,并指示索引是按升序还是降序排序。

最好在频繁查询数据检索的大表的列上创建索引。

语法

CREATE INDEX 的基本语法如下 –

CREATE INDEX index_name ON table_name;

索引的类型

使用CREATE INDEX语句可以创建各种类型的索引。它们包括:

  • 唯一索引

  • 单列索引

  • 复合索引

  • 隐式索引

唯一索引

唯一索引不仅用于提高性能,还用于数据完整性。唯一索引不允许插入重复的值到表中。当在数据库表上应用PRIMARY和UNIQUE约束时,会自动创建唯一索引,以防止用户插入重复的值到索引列中。基本语法如下所示。

CREATE UNIQUE INDEX index_name
on table_name (column_name);

单列索引

单列索引仅在一个表列上创建。语法如下。

CREATE INDEX index_name
ON table_name (column_name);

组合索引

组合索引是可在表的两个或更多列上创建的索引。其基本语法如下所示。

CREATE INDEX index_name
on table_name (column1, column2);

暗默索引

暗默索引是当对象创建时由数据库服务器自动创建的索引。例如,在MySQL数据库中在表上创建主键和唯一约束时会自动创建索引。

DROP INDEX语句

可以使用SQL的 DROP 命令来删除索引。删除索引可能会影响数据库的查询性能,因此只有在绝对必要时才需要删除索引。

基本的语法如下 –

DROP INDEX index_name;

何时应避免使用索引

尽管索引旨在提高数据库的性能,但有时候应避免使用索引。

以下准则表明在以下情况应重新考虑使用索引。

  • 小表不应使用索引。

  • 在进行频繁大批量更新或插入操作的表上不应使用索引。

  • 不应在包含大量空值的列上使用索引。

  • 经常进行操作的列不应被索引。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程