TGViewer
C# Short Posts 🔞 C# Short Posts 🔞 @dimasshortposts · 308 subscribers
Post #225 441
⚾ Специалист по PostgreSQL выдал базу.

Часть 3. Чек-лист оптимизаци запросов

Что вам нужно знать, чтобы понимать, как оптимизировать запросы:


1️⃣ Как читать статистику распрделения данных в БД. Как я понял имеется в виду представление pg_stats.

2️⃣ Есть планировщик и экзекьютор. Планировщик опирается на ту статистику, которая собрана по таблице в pg_stats. По умолчанию он анализирует 30000 строчек. Можно настроить для каждой таблички свой сэмпл. В MySQL есть аналоги.

3️⃣ pg_stats – важные колонки:
🟠n_distinct – количество уникальных значений в одной колонке. К прмеру для булеана понятно, что это значение будет 2.
🟠correlation – упорядоченность данных
🟠null_frac – количество нуллов
🟠most_common_vals – наиболее часто встречающиеся значения (ну типа если у вас таблица с транзакциями, то в этой графе первым значением будет "выполнено")
🟠most_common_freqs – частота их встреч (ну и тут соответственно будет что-то типа 0.99 это для значения "выполнено")

4️⃣ Для анализа запроса желательно вручную собрать сэмпл на 30000 записей, как это делает планировщик.

🫡Интересный факт: Иногда статистика планировщика может быть собрана по неудачному сэмплу, и это просадит запросы. Событие редкое, встречается раз в год, один раз на сто баз.

#postgresql #андрейсальников
  • 🔥 5
  • 👌 2
  • ❤ 1
More from @dimasshortposts
  1. Sep 30, 2026🛤 Путь до Tier1: от чего он зависит В прошлый раз мы гоняли hello world в цикле и увидели…
  2. Sep 26, 2026🧵 Тредик для вопросов по докладу про MAF на дотнексте В докладе многие подробности опусти…
  3. Sep 23, 2026Даже самым хардкорным ребятам надо отдыхать, так что отдыхаем, мои чюваки 🕺 🧑‍💻dp🥁 #he…
  4. Sep 16, 2026🎯 Instrumented Tier0: профилирование кода В прошлый раз мы разобрали два уровня компиляци…
  5. Sep 15, 2026🔜 Готовлюсь к DOTNEXT 2026 В прошлом году за две недели до выступления я зачитывал свой д…
  6. Sep 9, 2026C# Short Posts 🔞 pinned «🐸 О чём этот канал? Кажется, я уже достаточно давно веду этот к…
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 →