PostgreSQL 创建索引17 Mar 2025 | 4 分钟阅读 在本节中,我们将了解 PostgreSQL 创建索引的工作原理以及 创建索引命令的示例。 为什么我们要使用 PostgreSQL 创建索引命令?在 PostgreSQL 中, 创建索引命令用于通过定义索引名称以及要创建索引的表名或列名来创建新索引。 PostgreSQL 创建索引命令的语法创建 索引命令的语法如下: 在上面的语法中,我们使用了以下参数,如下表所示:
注意:如果我们想确定命令是否使用索引,可以使用 EXPLAIN 命令。PostgreSQL 创建索引的示例让我们看一个示例,以了解 PostgreSQL CREATE Indexes 命令的工作原理。 但在讨论示例之前,我们将把索引和电话簿类比作为示例的一部分。 索引和电话簿类比为了理解 索引和电话簿类比的实例,我们有以下情况: 情况 1:如果电话簿按字母顺序排列。
情况 2:如果电话簿不是按字母顺序排列的。
注意 与电话簿类似,存储在表中的数据可以按特定顺序准备,以加速一些搜索;因此,我们使用了索引。 可以将索引视为一种数据结构,例如 B-Tree,它以增加额外的写入和存储来维护它为代价,提高了表中数据检索的速度。 我们使用 Person_detalis 表,该表是我们之前在 PostgreSQL 教程的章节中创建的。 Person_deatils 表包含各种列,例如 id、Person_name 和 Mobile_number,如下面的屏幕截图所示。 ![]() 在下面的命令中,我们将尝试识别手机号码为 (444)-333-1234 的人的姓名。 输出 执行上述命令后,我们将获得以下输出,我们成功识别出手机号码为 (444)-333-1234 的人名,即 Mike Taylor。 ![]() 很容易理解,数据库必须扫描完整的 Person_details 表才能识别 Person_name,因为 Mobile_number 列不存在索引。 在这里,我们可以使用 EXPLAIN 命令来查看查询计划,如下面的命令所示: 输出 执行上述命令后,我们将获得以下输出,显示 Person_details 表的 Query plan。 ![]() 现在,为了创建一个新索引,我们借助以下命令从 Person details 表的 Moblie_phone 列中获取值。 输出 执行上述命令后,我们将收到以下消息:idx_Person_details_Mobile 索引已成功创建。 ![]() 如果我们想确定数据库引擎是否包含索引以进行查找,我们可以再次使用上面的 Explain command,如下面的命令所示: 输出 执行上述命令后,我们将收到以下消息,显示 Person_details 表的 Query plan。 ![]() 概述在 PostgreSQL 中,我们有单列索引,它有助于我们提高 PostgreSQL 索引的性能。 在 PostgreSQL 创建索引部分,我们学习了以下主题:
下一个主题PostgreSQL 删除索引 |
我们请求您订阅我们的新闻通讯以获取最新更新。