在 PostgreSQL 中的列的不同值上创建索引

nja*_*ard 4 postgresql

我有一个 PostgreSQL 表,看起来像这样:

CREATE TABLE items (
    name TEXT NOT NULL,
    value TEXT NOT NULL,
    PRIMARY KEY (name, value)
);
Run Code Online (Sandbox Code Playgroud)

我经常做一个查询,看看有什么value可用的:

SELECT DISTINCT value FROM items;
Run Code Online (Sandbox Code Playgroud)

如何在 PostgreSQL 中创建索引,使上述查询不必遍历所有items表?

Urk*_*kle 9

使用完全不同的查询,您可以强制 PostgreSQL 使用索引并获得等效的 DISTINCT 列。

https://wiki.postgresql.org/wiki/Loose_indexscan