У меня более 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))
Какое определение индекса у вас есть?
@Vao Tsun "Seq Scan on main_transaction t (cost = 0.00..74437.33 rows = 28974 width = 1455)" "Фильтр: ((pub_date> = '2018-01-01 00: 00: 00 + 05' :: отметка времени с часовой пояс) AND (pub_date <'2018-01-08 00: 00: 00 + 05' :: отметка времени с часовым поясом)) "
@Ben Пожалуйста, обратитесь к следующим ссылкам, чтобы понять мою таблицу 1 звено и 2-звено
Лоренц предлагает создать указатель в указанном вами ответе - что вы имеете в виду, это не помогло? как ты это проверил? проанализировали таблицу и проверили план? ..
Производительность такая же после индексации, как сказал @Laurenz.
Пожалуйста, укажите соответствующую информацию в этом вопросе.
@Ben Пожалуйста, поясните, что вы имеете в виду под словом "релевантный"? И, что в моем вопросе неактуально.
Пожалуйста, укажите в вопросе необходимую информацию. Например. определения индекса.
@ben Пожалуйста, откройте 1-ссылку и 2-ссылку, как я уже упоминал выше, комментарий. Здесь объясняются все ограничения и определения индексов. Лоренц и раньше помогала мне делать индексацию. Итак, индексы больше не определены, кроме этих ссылок.
Пожалуйста, поместите информацию, необходимую для вопроса это, в вопрос это. Вот как этот сайт должен работать.
план выполнения пожалуйста