Лучший способ выполнить отчетливую таблицу записей + 5M - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть приложение, использующее AWS Aurora SQL postgres 10 DB, которое ожидает + 5M записей в день в таблице. Приложение будет работать в среде kubernetes с ~ 5 модулями.
Одним из требований приложения является экспорт метода для создания объекта со всеми возможными значениями из 5 столбцов таблицы. ie: все различные значения столбца name.
Ожидается ~ 100 различных значений для столбца. A distinct/group by занимает более 1 с на столбец, что делает процесс не отвечающим нефункциональным требованиям (время процесса).
Я нашел решение создать таблицу / представление с distinct каждого столбца, этой таблицы. / view будет обновляться с помощью задачи, подобной cron.
Является ли это более эффективным подходом для удовлетворения нефункционального требования / времени процесса с использованием только postgres инструментов?

1 Ответ

0 голосов
/ 27 апреля 2020

Одним из возможных решений является материализованное представление , которое вы регулярно обновляете sh. Между этими обновлениями данные станут немного устаревшими.

В качестве альтернативы, вы можете поддерживать отдельную таблицу только с различными значениями и использовать триггеры для обновления информации при изменении строк. Для этого потребуется быстрый комбинированный индекс для всех задействованных столбцов.

DISTINCT - это всегда проблема производительности, если она затрагивает много строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...