Ssylka

Нестабильность статистики PostgreSQL и альтернативный сборщик

Стандартный сборщик статистики PostgreSQL может приводить к нестабильности планов запросов из-за стохастической природы сбора данных. Даже увеличение параметра default_statistics_target не гарантирует стабильности, особенно для полей с большим количеством дубликатов. Это затрудняет воспроизводимость бенчмарков и сравнительный анализ результатов.
Нестабильность статистики PostgreSQL и альтернативный сборщик
Изображение носит иллюстративный характер

Флуктуации в оценках количества строк, выбираемых из таблицы, могут начинаться уже на стадии SeqScan. Оценка выражений вида x = ANY (...) основывается на суммировании вероятностей для каждого элемента. Даже небольшие изменения частотности элементов выборки могут приводить к изменениям в итоговых оценках и, как следствие, к смене плана запроса.

В качестве решения предлагается создать расширение для PostgreSQL, которое позволит реализовать более точный сбор статистики, проходя всю таблицу и подсчитывая количество различных значений (ndistinct) и MCV. Расширение может цепляться к SeqScan нодам запросов через CustomScan. При этом можно будет использовать два хука get_relation_stats_hook и get_index_stats_hook для подмены стандартной статистики.

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


Новое на сайте

18600Как тело человека превращается в почву за 90 дней? 18599Как ваш iPhone может заменить паспорт при внутренних перелетах по США? 18598Мозговой шторм: что происходит, когда мозг отключается от усталости 18597Раскрыта асимметричная форма рождения сверхновой 18596Скидки Ninja: как получить идеальную корочку и сэкономить на доставке 18595Почему работа на нескольких работах становится новой нормой? 18594Записная книжка против нейросети: ценность медленного мышления 18593Растущая брешь в магнитном щите земли 18592Каким образом блокчейн-транзакции стали новым инструментом для кражи криптовалюты? 18591Что скрывается за ростом прибыли The Walt Disney Company? 18590Является ли ИИ-архитектура, имитирующая мозг, недостающим звеном на пути к AGI? 18589Как Operation Endgame нанесла сокрушительный удар по глобальной киберпреступности? 18588Кибервойна на скорости машин: почему защита должна стать автоматической к 2026 году 18587Как одна ошибка в коде открыла для хакеров 54 000 файрволов WatchGuard? 18586Криптовалютный червь: как десятки тысяч фейковых пакетов наводнили npm