本文概述
什么是索引
索引是特殊的查找表, 用于加快从数据库中检索数据的速度。
数据库索引类似于书的索引。索引为出现在索引列中的每个值创建一个条目。
数据库索引的重要功能
- 索引使用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”的表, 其中包含以下数据:
让我们基于”名称”列在表” EMPLOYEES”上创建一个名为” employees_index”的索引
执行以下查询:
CREATE INDEX employees_index
ON EMPLOYEES (name);
在这里, 你可以看到在该表上创建了一个名为” employees_index”的索引
输出
多列索引
如果使用表的多个列创建索引, 则该索引称为多列索引。
句法:
CREATE INDEX index_name
ON table_name (column1_name, column2_name);
让我们在同一张表” EMPLOYEES”上创建一个名为” multicolumn_index”的多列索引
执行以下查询:
CREATE INDEX multicolumn_index
ON EMPLOYEES (name, salary);
输出
唯一索引
创建唯一索引以获取数据完整性并增强性能。不允许在表中插入重复的值。
句法:
CREATE UNIQUE INDEX index_name
on table_name (column_name);
PostgreSQL删除索引
DROP INDEX方法用于在PostgreSQL中删除索引。如果删除索引, 则它可能减慢或提高性能。
句法:
DROP INDEX index_name;
让我们以一个示例为例, 删除之前创建的名为” multicolumn_index”的索引。
执行以下查询:
DROP INDEX multicolumn_index;
现在, 你可以看到删除/删除了名为” multicolumn_index”的索引。
输出
什么时候应该避免索引
- 你应该避免在小型表上使用索引。
- 不要为具有频繁, 大量批处理更新或插入操作的表创建索引。
- 索引不应该用于包含大量NULL值的列。
- 不要为经常操作的列创建索引。
评论前必须登录!
注册