Планы выполнения формируются на основе команды, статистики, собранной по объектам и параметрам конфигурации. Основной способ сбора статистики - команда ANALYZE, для которой нужны данные. В PostgreSQL 18 версии появились функции pg_restore_relation_statsи pg_restore_attribute_stats, которые могут записать…
Планы выполнения формируются на основе команды, статистики, собранной по объектам и параметрам конфигурации. Основной способ сбора статистики - команда ANALYZE, для которой нужны данные. В PostgreSQL 18 версии появились функции pg_restore_relation_statsи pg_restore_attribute_stats, которые могут записать…
Однажды техдепу в HeadHunter сделали толстовки с принтом на спине «hh и в продакшн». Вроде бы и забавно, но меня всё время смущала эта надпись, т.к. в оригинале это не то, чем стоит гордиться. Это натолкнуло меня написать пост, что же на самом деле означают буквы hh. Я хочу рассказать о том, как рождается фича в HeadHunter на примере команды API, в которой я тружусь. Какой путь ей предстоит пройти от идеи до выхода в продакшн. Затрону как технические, так и менеджерские аспекты. Читать дальше →
VACUUM в PostgreSQL принято считать универсальным средством поддержания порядка: он очищает мёртвые кортежи, обновляет статистику и вроде бы держит базу «в форме». Но с индексами всё сложнее. В какой-то момент они начинают расти и деградировать так, что это уже влияет на планы запросов и поведение оптимизатора — при том, что формально всё обслуживается корректно. Разберёмся, где именно возникает это расхождение между ожиданиями и реальностью и что на самом деле происходит внутри B-дерева. Разобраться глубже