个性化阅读
专注于IT技术分析

PostgreSQL索引用法

本文概述


什么是索引

索引是特殊的查找表, 用于加快从数据库中检索数据的速度。

数据库索引类似于书的索引。索引为出现在索引列中的每个值创建一个条目。

数据库索引的重要功能

  • 索引使用SELECT查询和WHERE子句可加快数据输出速度, 但使用INSERT和UPDATE语句可降低数据输入速度。
  • 你可以创建或删除索引, 而不会影响数据。
  • 你可以使用CREATE INDEX语句创建索引, 方法是指定索引名称以及在其上创建索引的表或列名称。
  • 你还可以创建一个唯一索引, 类似于UNIQUE约束, 因为该索引可以防止存在索引的列或列组合中的重复条目。

PostgreSQL创建索引

CREATE INDEX语句用于创建PostgreSQL索引。

句法:

CREATE INDEX index_name ON table_name;

索引类型

PostgreSQL中有几种索引类型, 例如B树, 哈希, GiST, SP-GiST和GIN等。每种索引类型根据不同的查询使用不同的算法。默认情况下, CREATE INDEX命令使用B树索引。

单列索引

如果索引仅基于一个表列创建, 则称为单列索引。

句法:

CREATE INDEX index_name
ON table_name (column_name);

请参阅以下示例:

我们有一个名为” EMPLOYEES”的表, 其中包含以下数据:

PostgreSQL索引

让我们基于”名称”列在表” EMPLOYEES”上创建一个名为” employees_index”的索引

执行以下查询:

CREATE INDEX employees_index
ON EMPLOYEES (name);
PostgreSQL索引

在这里, 你可以看到在该表上创建了一个名为” employees_index”的索引

输出

PostgreSQL索引

多列索引

如果使用表的多个列创建索引, 则该索引称为多列索引。

句法:

CREATE INDEX index_name
ON table_name (column1_name, column2_name);

让我们在同一张表” EMPLOYEES”上创建一个名为” multicolumn_index”的多列索引

执行以下查询:

CREATE INDEX multicolumn_index
ON EMPLOYEES (name, salary);

输出

PostgreSQL索引

唯一索引

创建唯一索引以获取数据完整性并增强性能。不允许在表中插入重复的值。

句法:

CREATE UNIQUE INDEX index_name
on table_name (column_name);

PostgreSQL删除索引

DROP INDEX方法用于在PostgreSQL中删除索引。如果删除索引, 则它可能减慢或提高性能。

句法:

DROP INDEX index_name;

让我们以一个示例为例, 删除之前创建的名为” multicolumn_index”的索引。

执行以下查询:

DROP INDEX multicolumn_index;
PostgreSQL索引

现在, 你可以看到删除/删除了名为” multicolumn_index”的索引。

输出

PostgreSQL索引

什么时候应该避免索引

  • 你应该避免在小型表上使用索引。
  • 不要为具有频繁, 大量批处理更新或插入操作的表创建索引。
  • 索引不应该用于包含大量NULL值的列。
  • 不要为经常操作的列创建索引。
赞(0)
未经允许不得转载:srcmini » PostgreSQL索引用法

评论 抢沙发

评论前必须登录!