@kiukishenkaec

Какие индексы добавить в таблицу базы pgsql?

Структура таблицы - 5d1b13736c3c4805033473.png
Количество записей - от 50 000 до 100 000
Вот некоторые запросы к этой таблице:
1).
select "start" from "channel_program" where "channel_id" = "channels"."id" and "end" < '2019-07-02 06:10:21' order by "start" desc limit 1

2).
select "start" from "channel_program" where "channel_id" = "channels"."id" and "start" <= '2019-07-02 06:10:21' and "end" > '2019-07-02 06:10:21' limit 1

3).
select "start" from "channel_program" where "channel_id" = "channels"."id" and "start" > '2019-07-02 06:10:21' limit 1

4).
select * from "channel_program" where "start"::date = '2019-07-02' and "channel_program"."channel_id" in (14) order by "start" asc
  • Вопрос задан
  • 36 просмотров
Решения вопроса 1
TheRonCronix
@TheRonCronix
1. b-tree на channel_id и start кажется удачным.
2. Стоит учитывать распредление данных, но это если понимаете, как оно влияет. А так, просто возьмите да и потестируйте свои запросы на тестовой таблице.
3. Статистику не забудьте собрать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы