Рассмотрим следующую схему БД
my_primary_id (text) primary index
my_date (timestamp with timezone)
Есть ли способ индексировать my_date
, чтобы я мог иметь быстрый запрос диапазона дат?
Моя первая мысль сделать my_date
вторичный индекс, однако, немного подумав, если каждый день у меня будет от 100 до 200 тыс. элементов, количество элементов индекса my_date
будет равно количеству строк, которые у меня есть.
, поскольку большойтаблица индекса -> более медленный запрос, я подумал, что, возможно, мне следует сохранить дополнительный столбец
`yyyy-mm-dd`
и индексировать его вместо этого?
Есть ли какой-либо недостаток в этом, если я могу гарантировать, что диапазон датзапрос, который я не возвращаю, не возвращает более 5% размера моей таблицы (предотвращая его с помощью сканирования seq)?
Мой шаблон запроса следующий
select * from my_table
where my_date >= my_start_date and my_date < my_end_date