PostgreSQL教程

PostgreSQL 创建索引

在本节中,我们将了解 PostgreSQL创建索引和示例的工作原理创建索引命令。

为什么我们使用PostgreSQL创建索引命令?

在 PostgreSQL ,创建索引命令用于通过定义索引名称和在其上创建索引的表或列名称。

PostgreSQL"创建索引"命令的语法

创建索引命令的语法如下:
CREATE INDEX index_name ON table_name [USING method]
(
    column_name [ASC | DESC] [NULLS {FIRST | LAST}],
    ...
);
在上面的语法中,我们使用了以下参数,如下表所示:
参数 说明
index_name 它用于定义索引的名称。 并且应在 CREATE INDEX 之后编写 在这里,我们应该尝试给出索引更简单有效的名称,以便于调用。
table_name 表名参数用于定义与索引链接的表名。 并且在 ON 关键字之后指定。
USING method 它用于指定索引方法,例如 B树,GIN,哈希,GiST,BRIN和SP-GiST。 默认情况下,PostgreSQL使用 B树索引。
column_name 如果我们在索引中存储了几列,则使用 column_name 参数来定义列表。 ASC和DESC 用于定义排序顺序。默认情况下,它是 ASC 。 NULLS FIRST或NULLS LAST 用于描述 null值之前或之后的 null 排序。 定义了 DESC 后, NULLS FIRST 被视为默认值。 如果未定义 DESC ,则将 NULLS LAST 视为默认设置。
注意: 如果要确定命令是否使用索引,可以使用EXPLAIN命令。

PostgreSQL创建索引的示例

让我们看一个示例示例,以了解 PostgreSQL CREATE Indexes 的工作原理命令。
但是在讨论示例之前,我们将在示例中看到索引和电话目录类比。

索引和电话目录类比

为了理解索引和电话目录类比的实例,我们有以下几种情况:
案例1: 如果电话目录按字母顺序排列。
假设我们需要在电话目录中看到 Mike Taylor 的电话号码。 我们也知道电话目录中的名称按字母顺序排列。 因此,首先,我们将检查姓为 Taylor 的那些页面,并确定名字为 Mike ,最后检索他的电话号码。
情况2: 如果电话簿不是按字母顺序排列。
假设电话目录中的名称不是按字母顺序排列的。 因此,我们应该检查所有页面,例如检查所有名称,直到我们确定 Mike Taylor的电话号码。 这一过程称为顺序扫描,它将遍历所有条目,直到我们确定要搜索的条目为止。
注意:
与电话目录平行,表中存储的数据可以按照特定的顺序准备: 加快几次搜索;因此,我们使用了索引。
索引可以被认为是一种数据结构,例如 B-Tree ,它可以提高表上数据的检索速度
我们将使用在PostgreSQL前面的部分中创建的 Person_detalis 表。教程。
和 Person_deatils 表包含各个列,例如 id,Person_name和Mobile_number ,如下面的屏幕截图:
PostgreSQL创建索引
在以下命令中,我们将尝试识别Person 移动电话号码为(444)-333-1234 的名称:
SELECT * FROM Person_details
WHERE Mobile_number = '{(444)-333-1234}';
输出
在执行上述命令时,我们将获得以下输出,在此我们成功识别出手机号码为人名 (444)-333-1234 ,即 Mike Taylor 。
PostgreSQL创建索引
数据库必须扫描完整的 Person_details 表以识别 Person_name ,这是可以理解的>,因为 Mobile_number 列中没有索引。
在这里,我们可以使用 EXPLAIN 命令查看查询计划,因为可以在以下命令中看到:
EXPLAIN SELECT *
FROM Person_details
WHERE Mobile_number = '{(444)-333-1234}';
输出
执行上述命令后,我们将获得以下输出,该输出显示 的查询计划 > Person_details 表。
PostgreSQL创建索引
现在可以创建一个新索引,我们借助以下命令从 人员详细信息 表的 Moblie_phone 列中获取值:
CREATE INDEX idx_Person_details_Mobile 
ON Person_details(Mobile_number);
输出
在执行上述命令时,我们将收到以下消息: idx_Person_details_Mobile 索引已成功创建。
PostgreSQL创建索引
如果我们要标识数据库引擎,其中包含用于查找的索引,那么我们可以再使用一次说明命令,如以下命令所示:
EXPLAIN SELECT *
FROM Person_details
WHERE Mobile_number = '{(444)-333-1234}';
输出
执行上述命令后,我们将收到以下消息,其中显示了 Person_details 的查询计划strong>表。
PostgreSQL创建索引

概述

在PostgreSQL中,我们有单索引列索引,可帮助我们提高PostgreSQL索引的性能。
在 PostgreSQL创建索引中部分,我们学习了以下主题:
我们已经使用了CREATE Index 命令来为特定表创建新索引。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4