Как стать автором
Обновить

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.1 — как и зачем читать планы)

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров40K
Всего голосов 34: ↑33 и ↓1+37
Комментарии4

Комментарии 4

НЛО прилетело и опубликовало эту надпись здесь

Там были еще курсы по разработке бизнес-логики на python, интерфейса на JS и управлению сервисами, но они слишком сильно "заточены" на нашу внутреннюю инфраструктуру, поэтому вряд ли будут публиковаться. Возможно, их следующие версии.

база по умолчанию собирает данные о распределении относительно всего лишь 100 значений (параметр default_statistics_target).

Это некорректная формулировка
Статистика собирается по 300 * default_statistics_target кортежам с такого же количества страниц. Т. е. , по дефолту, 300 * 100 = 30000 строк
И ещё default_statistics_target определяет количество корзин в гистограмме значений, тут без всякого множителя

См. комментарий в исходниках по поводу числа 300

Объём информации, сохраняемой в pg_statistic командой ANALYZE, в частности максимальное число записей в массивах most_common_vals (самые популярные значения) и histogram_bounds (границы гистограмм) для каждого столбца, можно ограничить на уровне столбцов с помощью команды ALTER TABLE SET STATISTICS или глобально, установив параметр конфигурации default_statistics_target. В настоящее время ограничение по умолчанию равно 100 записям. Увеличивая этот предел, можно увеличить точность оценок планировщика, особенно для столбцов с нерегулярным распределением данных, ценой большего объёма pg_statistic и, возможно, увеличения времени расчёта этой статистики. И напротив, для столбцов с простым распределением данных может быть достаточно меньшего предела.

Понятно, что речь и в документации идет про 100 записей значений гистограммы, а не 100 исходных. Для начинающего разработчика, на мой взгляд, и про коэффициент 300, и про увеличение времени анализа - избыточно. На эти грабли он наступит еще ой как нескоро.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий