Добрый день
есть таблица
CREATE TABLE material ( mid bigserial NOT NULL, ... active_from timestamp without time zone, .... CONSTRAINT material_pkey PRIMARY KEY (mid), ) CREATE INDEX i_test_t_year ON material USING btree (date_part('year'::text, active_from));
если делать сортировку по полю mid
SELECT mid FROM material ORDER BY mid DESC "Index Only Scan Backward using material_pkey on material (cost=0.29..3573.20 rows=100927 width=8)"
а если сделать сортировку по полю active_from
SELECT * FROM material ORDER BY active_from DESC "Sort (cost=12067.29..12319.61 rows=100927 width=16)" " Sort Key: active_from" " -> Seq Scan on material (cost=0.00..1953.27 rows=100927 width=16)"
возможно индекс надо поменять?
Если я правильно понимаю, вы
Если я правильно понимаю, вы построили индекс, включив в него только год. Возможно поэтому оптимизатор решил, что использовать данный индекс бестолково в силу его неэфективности.