索引3列的最佳选项,其中Postgresql中一次只查询2列

时间:2017-12-20 16:46:01

标签: sql database postgresql indexing

对于以下场景,什么是最有效的索引? 3栏:

user_id, created_at, and name.

((user_idcreated_at)一起查询,同时查询user_idname

created_atname专门用于排序。举个例子:

SELECT "items".* FROM "items" WHERE "items"."user_id" = $1 ORDER BY created_at [["user_id", 1]]

SELECT "items".* FROM "items" WHERE "items"."user_id" = $1 ORDER BY name [["user_id", 1]]

我知道索引是从左到右的,所以"user_id, created_at""user_id, name"上的两个多列索引最好,或者有没有办法“共享”user_id索引(类似于3个索引) on user_id,created_at和name)?

1 个答案:

答案 0 :(得分:0)

使用bloom index

它可以用作包含索引列的任意子集的查询的过滤器。

您必须安装bloom contrib模块。