Советы по производительности для приложений PostgreSQL OLAP - PullRequest
0 голосов
/ 13 января 2019

У меня есть PostgreSQL OLAP-куб с 5 объединенными таблицами с примерно 1 миллионом строк. Многие пользователи могут фильтровать измерения через веб-интерфейс, который создает высокую нагрузку на сервер. Веб-приложение - это аналитический инструмент, поэтому пользователи могут постоянно менять измерения, чтобы анализировать свой бизнес. Не могли бы вы дать несколько советов, как улучшить производительность? Например, это хорошая идея - использовать материализованное представление с 5 объединенными таблицами, которое кэшируется Postgres, и пользователь запрашивает это представление и не делает соединения снова и снова. Или используйте индексы для наиболее часто используемых столбцов. Пожалуйста помоги! :: -)

1 Ответ

0 голосов
/ 13 января 2019

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

Раздел таблицы фактов, скажем, год

Убедитесь, что у вас есть первичные ключи для ваших фактов и димов, а также индексы для ваших ключей к таблицам измерений. Столбцы индекса, которые часто используются для ORDER BY, WHERE и GROUP BY

Используете ли вы реальный сервер OLAP перед PostgreSQL? Убедитесь, что кэширование включено и оптимизировано

Используйте твердотельные накопители RAID 10 и убедитесь, что на вашей машине достаточно ядер и ОЗУ

Использовать кэширование браузера , прокси-кэширование, кэширование веб-сервера, ORM-кэширование

...