Postgresql 博士后:索引顺序

Postgresql 博士后:索引顺序,postgresql,Postgresql,索引ASC或DESC的顺序是否影响按相反方向排序的选择 例如,假设我们有一个表: CREATE TABLE public."Comments" ( id integer NOT NULL DEFAULT nextval('"Comments_id_seq"'::regclass), child_count integer DEFAULT 0, comment text COLLATE pg_catalog."default", CONSTRAINT "Commen

索引ASC或DESC的顺序是否影响按相反方向排序的选择

例如,假设我们有一个表:

CREATE TABLE public."Comments"
(
    id integer NOT NULL DEFAULT nextval('"Comments_id_seq"'::regclass),
    child_count integer DEFAULT 0,
    comment text COLLATE pg_catalog."default",
    CONSTRAINT "Comments_pkey" PRIMARY KEY (id)
)
和子项计数列上的索引:

即,默认情况下按ASC顺序

然后我们发表声明:

SELECT id, child_count, comment
FROM public."Comments"
ORDER BY child_count DESC
OFFSET 0
LIMIT 100

我们是否需要反转索引方向?

在创建索引时,您可以通过包括选项ASC、DESC、NULLS FIRST和/或NULLS LAST来调整索引的顺序;例如:

CREATE INDEX test2_info_nulls_low ON test2 (info NULLS FIRST);
CREATE INDEX test3_desc_index ON test3 (id DESC NULLS LAST);

通过

使用explain ANALYSE检查执行计划,也可以向后扫描索引,生成符合x顺序的输出DESC@a_horse_with_no_name计划是相同的,这是否意味着索引的顺序没有意义?不是针对这个特定的情况,但请阅读手册中的描述,以及我的评论中的链接。在某些情况下,指定订单会有所帮助-例如,对于多列IndexeThanks!但问题是:这种排序有意义吗?它会影响选择的速度吗?
CREATE INDEX test2_info_nulls_low ON test2 (info NULLS FIRST);
CREATE INDEX test3_desc_index ON test3 (id DESC NULLS LAST);