У меня более 1 миллиона строк в таблице, и мой запрос SELECT
выполняется медленно при поиске между диапазоном дат .
Итак, у меня есть следующая таблица
CREATE TABLE public.main_transaction
(
id integer NOT NULL DEFAULT nextval('main_transaction_id_seq'::regclass),
description character varying(255) NOT NULL,
transaction_type character varying(18) NOT NULL,
pub_date timestamp with time zone NOT NULL,
...
)
Над таблицей 34 столбца, включая 3 FOREIGN KEY
с и
Я хочу ускорить следующий запрос.
SELECT * FROM main_transaction
WHERE
pub_date >= '2018-01-01'
AND pub_date <'2018-01-08'
Теперь он работает за 12 секунд . :(
Кстати, я попробовал это решение. Однако я не заметил особых изменений.
план выполнения:
Seq Scan on main_transaction t (cost=0.00..74437.33 rows=28974 width=1455)
Filter: ((pub_date >= '2018-01-01 00:00:00+05'::timestamp with time zone) AND (pub_date < '2018-01-08 00:00:00+05'::timestamp with time zone))