возвращает примерно за 10 секунд
Записей более 50 миллионов
SELECT COUNT(*) AS "__count" FROM "table_name" WHERE "table_name"."created_at" >= '2021-10-29 18:24:03.691722 +00:00'
Мне нужно желательно точное количество, насколько примерно? до ± 50 пойдет
Партиции индексы есть?
так может стоит создать индекс по дате для начала?
Думаю так и сделаю, благодарю!
Значит, считать в процэссе инсертов. Ну, то есть как... Если там SSD или этот индэкс висит в памяти и бОльшая часть таблицы не меняется, и индэкс ровно на те поля, которые у тебя в WHERE -- то оно, в принцыпе, превратится в основном в index-only scan нескольких гигабайт буферов. Меньшэ секунды, вероятно. То есть всё ещё зависит от жэлеза и того, что такое "минимизировать". А если такое не устраивает -- то считать триггерами.
Ускорить время ответа. Мне надо достать количество добавленных объектов за последнюю минуту.
У тебя 50 миллионов за минуту записей будет?
Нет, сейчас чуть больше 50 миллионов. С ростом время ответя растет.
Я надеялся на ответ про количество в count. Впрочем, неважно. Скорее всего, банальный индэкс решыт твои проблемы, так что чего нам тут обсуждать/
Обсуждают сегодня