PostgreSQL索引用法

本文概述

  • 什么是索引
  • 数据库索引的重要功能
  • PostgreSQL创建索引
  • 索引类型
  • 单列索引
  • 多列索引
  • 唯一索引
  • 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索引用法】输出
PostgreSQL索引用法

文章图片
什么时候应该避免索引
  • 你应该避免在小型表上使用索引。
  • 不要为具有频繁, 大量批处理更新或插入操作的表创建索引。
  • 索引不应该用于包含大量NULL值的列。
  • 不要为经常操作的列创建索引。

    推荐阅读