PostgreSQL: швейцарский нож, которым пытаются рубить дрова
Если вы начинаете проект, PostgreSQL — лучший выбор в 99% случаев. Транзакции, связи, JSONB — он умеет всё. Но как только ваш бизнес дорастает до серьезной аналитики, начинаются проблемы.
Представьте: вам нужно посчитать динамику среднего чека по всем 500 магазинам за последние 3 года. Это 150 миллионов строк. Ваш Postgres кряхтит, напрягает индексы, загружает RAM на 100%... и выдает результат через 25 секунд. Для реал-тайм дашборда это приговор.
Встречайте OLAP и ClickHouse
Почему Postgres тормозит? Потому что он строчный (OLTP). Чтобы найти сумму одной колонки, он читает всю строку со всеми данными.
ClickHouse — колоночная база данных (OLAP). Если вам нужна колонка "Сумма", он прочитает с диска *только* колонку "Сумма". А благодаря жесткой векторной оптимизации и сжатию, он делает это с невероятной скоростью.
Жесткие цифры
- Запрос агрегации в PostgreSQL: 18 секунд.
- Тот же запрос в ClickHouse: 0.15 секунды.
Разница в 120 раз. Дашборд, который раньше бесил директора долгими загрузками, стал перерисовываться мгновенно при клике на фильтры.
Так что, выкидываем Postgres?
- PostgreSQL хранит текущее состояние бизнеса, обслуживает транзакции и пользователей.
- Скрипты (Airbyte/dbt) раз в 5 минут переливают инсерты в ClickHouse.
- ClickHouse отдает данные в BI-систему (Superset).
Используйте правильные инструменты для своих задач.