PostgreSQL教程

PostgreSQL 部分索引

在本节中,我们将了解 PostgreSQL局部索引的工作原理,该索引用于增强PostgreSQL的性能。

什么是PostgreSQL部分索引?

到目前为止,我们已经了解了如何在索引中添加各种列的值。 部分索引是下一个命令,该命令在PostgreSQL索引中使用。
它允许我们定义表中可以进行索引的行。因此,我们将使用部分索引来加快查询速度,同时减小索引的大小。
换句话说,我们可以说 PostgreSQL部分索引是一个索引,在表的小节上构造。 部分索引的谓词是通过条件表达式定义的良好子集。
并且仅对那些满足谓词的表行访问索引。
假设我们使用了具有恒定值的WHERE条件,那么在这种情况下,我们可以使用 PostgreSQL部分索引,因为它非常有益。
注意: 如果列名包含constant_value,则可以使用以下插图:
SELECT * 
FROM table_name
WHERE column_name = constant_value;

PostgreSQL部分索引的语法

指定部分索引的语法如下:
CREATE INDEX index_name
ON table_name(column_list)
WHERE condition;
在上图中, WHERE子句用于定义这些行,这些行被添加到

PostgreSQL局部索引的示例

让我们看一个示例示例,了解 PostgreSQL局部索引的工作。
我们正在创建命令的帮助下, 买方 创建一个新表,并插入一些使用 INSERT命令的值。
要创建 客户端 放入组织数据库,我们使用 CREATE 命令:
CREATE TABLE Buyer (
    Buyer_id int Primary key,
    first_name character varying(35) NOT null,
    last_name character varying(35) NOT null,
    email_address character varying(50),
   active integer
);
输出
执行上述命令后,我们将获得以下消息窗口,其中显示 Buyer strong>表已成功创建到 Organization 表中。
PoatgreSQL Partial Index
成功创建 Buyer 表后,我们将使用 INSERT 命令在其中输入一些值帮助。
INSERT INTO Buyer( Buyer_id, first_name, last_name, email_address, active)
VALUES (1001,'Mike', 'Ross','mike.ross11@hotmail.com',1),
(1002,'Olivia', 'Smith','O.smith@gmail.com',0),
(1003,'Kathy', 'James','kathy.james@gmail.com',0),
(1004,'Annie', 'Russell','annie33@gmail.com',0),
(1005,'Rachel', 'Barnes','barnes.rachel55@gmail.com',1);
输出
执行上述命令后,我们将获得以下消息窗口,该窗口显示特定值已成功插入买方 表。
PoatgreSQL Partial Index
通常,如果我们对不活跃的购买者感兴趣,并经常进行一些跟进以使他们重新购买更多物品。
在以下命令中,我们试图确定所有不活跃的购买者:
SELECT Buyer_id, first_name, last_name, email_address
FROM Buyer
WHERE active = 0;
输出
成功执行上述命令后,我们将得到以下结果,其中显示所有买方信息 >非活动:
PoatgreSQL部分索引
在以下命令中,我们正在使用 EXPLAIN关键字以执行上述命令,因为查询计划者需要扫描 买方 表:
EXPLAIN
SELECT Buyer_id, first_name, last_name, email_address
FROM Buyer
WHERE active = 0;
输出
执行上述命令后,我们将获得以下输出,其中显示了买方表的查询计划。
PoatgreSQL部分索引
在这里,我们还可以通过为 active创建索引来增强命令列,如以下命令所示:
CREATE INDEX idex_buyer_active
ON Buyer(active);
输出
执行上述命令时,我们将收到以下消息: 索引已成功创建 idex_buyer_active
PoatgreSQL Partial Index
上面创建的索引可以满足其目的,但是它也包含几行,这些行永远不会被搜索,特别是所有活跃买家。
在以下命令中,我们指定索引,该索引仅包括不活跃买家:
CREATE INDEX idex_buyer_inactive
ON Buyer(active)
WHERE active = 0;
输出
执行上述命令后,我们将收到以下消息: idex_buyer_inactive 索引已成功创建。
PoatgreSQL部分索引
因此, PostgreSQL 将在命令中出现 WHERE子句时使用部分索引,如以下命令所示:
EXPLAIN
SELECT Buyer_id, first_name, last_name, email_address
FROM Buyer
WHERE active = 0;
输出
在执行上述命令时,我们将获得以下消息,该消息显示了PostgreSQL优化器使用 idex_buyer_inactive <时,buyer表的查询计划索引。 < div> PoatgreSQL部分索引

概述

在 PostgreSQL部分索引部分中,我们了解了PostgreSQL部分索引的工作以及如何定义添加到索引的行。

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4