TGViewer
System Design World System Design World @system_design_world · 6.01K subscribers
Post #379 2.99K
1️⃣0️⃣ PostgreSQL и 10 млн записей. Всё плохо?

❌ Очень внезапно сайт стал медленно грузиться. Почему?
=> Перешагнули психологический рубеж в 10 млн записей.

Что при этом происходит:
• Индексы перестают помещаться в RAM
• Планировщик запросов выбирает неоптимальные пути
• Простые JOIN превращаются в многоминутные операции
• Главный запрос выполнялся 28 секунд 🐤

✅ Что сделали:
• Провели анализ — нашли самые тяжелые запросы через pg_stat_statements
• Оптимизировали индексы — заменили простые индексы на составные и частичные
• Переписали запрос — разбили на CTE для лучшей оптимизации
• Обновили статистику — ANALYZE для помощи планировщику

💯 Результат:
• Время запроса улучшилось: с 28 сек до 120 мс (в 233 раза)
• Чтение строк: с 15 млн до 8 тыс
• Нагрузка на CPU: с 95% до 12%

‼️ Главные выводы:
• Индексы ≠ волшебная палочка — нужно понимать, как их использует планировщик
• 10 млн — психологический барьер, после него меняется поведение СУБД
• Без EXPLAIN ANALYZE и pg_stat_statements работаешь вслепую
• Иногда проще переписать запрос, чем добавить очередной индекс

—> Полная версия на habr <—
  • 🔥 19
  • 👍 4
  • ⚡ 3
More from @system_design_world
  1. Oct 8, 2026Архитектурные диаграммы без боли: C4, Sequence, ER Как вам начало? Сразу сделал монтаж. Сд…
  2. Oct 8, 2026Post #782
  3. Oct 7, 202630 минут до диаграмм! upd. Внезапно разыграли от avito.tech☄️ мерч 😀
  4. Oct 7, 2026Константин из Авито в гостях! Константин Воливач — E6 Engineer из Авито. Покажет своё диаг…
  5. Oct 6, 2026System Design. Back to Basic. Балансировка. Пробую новый формат. Посмотрите, пожалуйста, к…
  6. Oct 5, 2026🧩 Харнесс здорового человека 20+ лс обошёл ☑️ В четверг вечером подробней с Савелием расс…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →