PostgreSQL 部分索引2025年3月17日 | 阅读 3 分钟 在本节中,我们将了解 PostgreSQL 部分索引的工作原理,它通过减少索引大小来提高命令的性能。 什么是 PostgreSQL 部分索引?到目前为止,我们已经了解了如何将各种列的值添加到索引。 部分索引是 PostgreSQL 索引中使用的下一个命令。 它允许我们定义可以被索引的表的行。 因此,我们将使用部分索引来加速查询,同时减小索引的大小。 换句话说,我们可以说 PostgreSQL 部分索引是一个基于表的一个子集构建的索引。 部分索引的谓词是一个由条件表达式定义的良好定义的子集。 并且该索引仅对那些满足谓词的表行进行访问。 假设我们使用了具有常量值的 WHERE 条件,那么在这种情况下,我们可以选择 PostgreSQL 部分索引,因为它非常有利。 注意:如果列名包含 constant_value,那么我们可以使用以下说明PostgreSQL 部分索引的语法指定部分索引的语法如下 在上面的说明中,WHERE 子句用于定义添加到索引的那些行。 PostgreSQL 部分索引的示例让我们看一个示例来了解 PostgreSQL 部分索引的工作原理。 我们将使用 CREATE 命令的帮助创建一个新表,命名为 Buyer,并使用 INSERT 命令插入一些值。 要将 Clients 创建到 Organization 数据库中,我们使用 CREATE 命令 输出 执行上述命令后,我们将获得以下消息窗口,它显示 Buyer 表已成功创建到 Organization 表中。 ![]() 成功创建 Buyer 表后,我们将使用 INSERT 命令的帮助在其中输入一些值。 输出 执行上述命令后,我们将获得以下消息窗口,它显示特定的值已成功插入到 Buyer 表中。 ![]() 通常,如果我们对不活跃的买家感兴趣,并且经常进行一些跟进以让他们重新购买更多商品。 在下面的命令中,我们尝试识别所有不活跃的买家 输出 成功执行上述命令后,我们将获得以下结果,它显示了所有不活跃的买家信息 ![]() 在下面的命令中,我们使用 EXPLAIN 关键字来执行上述命令,因为查询计划器需要扫描 Buyer 表 输出 执行上述命令后,我们将获得以下输出,它显示了 Buyer 表的查询计划。 ![]() 在这里,我们还可以通过为 active 列创建一个索引来增强命令,如下面的命令所示 输出 执行上述命令后,我们将收到以下消息:索引 idex_buyer_active 已成功创建 ![]() 上面创建的索引满足了它的目的,但它也包含了一些从未搜索过的行,特别是所有活跃的买家。 在下面的命令中,我们指定了只包含不活跃买家的索引 输出 执行上述命令后,我们将收到以下消息:索引 idex_buyer_inactive 已成功创建。 ![]() 因此,当 WHERE 子句出现在命令中时,PostgreSQL 将使用部分索引,如下面的命令所示 输出 执行上述命令后,我们将收到以下消息,它显示了 Buyer 表的查询计划,因为 PostgreSQL 优化器正在使用 idex_buyer_inactive 索引。 ![]() 概述在 PostgreSQL 部分索引 部分,我们了解了 PostgreSQL 部分索引的工作原理以及如何定义添加到索引的行。 下一个主题PostgreSQL REINDEX |
我们请求您订阅我们的新闻通讯以获取最新更新。