Postgresql 博士后:索引顺序
索引ASC或DESC的顺序是否影响按相反方向排序的选择 例如,假设我们有一个表: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
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);