Unique 索引之上的 PostgreSQL Btree 索引
PostgreSQL Btree index on top of Unique index
我有一个带有唯一索引的 table。
CREATE UNIQUE INDEX task_index ON public.task USING btree (id, user);
我的大部分选择都使用 where id=?
所以我还需要 ID 列的索引吗?还是唯一索引本身索引了该列?
您已经创建的唯一索引使用 B 树,其中 id
作为第一个要拆分的字段。该索引应该可用于仅包含 id
或 id
和 user
的 where 子句。对于前一种情况,请考虑如下查询:
SELECT *
FROM task
WHERE id = 3;
Postgres 可以使用您当前的索引来查找对应于 id = 3
的子树。对于该子树下的所有叶节点,它可以简单地扫描以找到所有匹配的记录。
我有一个带有唯一索引的 table。
CREATE UNIQUE INDEX task_index ON public.task USING btree (id, user);
我的大部分选择都使用 where id=?
所以我还需要 ID 列的索引吗?还是唯一索引本身索引了该列?
您已经创建的唯一索引使用 B 树,其中 id
作为第一个要拆分的字段。该索引应该可用于仅包含 id
或 id
和 user
的 where 子句。对于前一种情况,请考虑如下查询:
SELECT *
FROM task
WHERE id = 3;
Postgres 可以使用您当前的索引来查找对应于 id = 3
的子树。对于该子树下的所有叶节点,它可以简单地扫描以找到所有匹配的记录。