PostgreSQL в проде: блокировки, bloat и ночные пересчёты. Три инцидента и как их чинили
<img src="https://habrastorage.org/getpro/habr/upload_files/6fb/334/7ae/6fb3347aeb756abb52e83e7aecde3e68.jpg" /><p>В <a href="https://habr.com/ru/articles/1074552" rel="noopener nofollow">прошлой статье</a> я рассказывал, как мы перевозили терабайт банковской базы с Oracle на PostgreSQL без даунтайма. Там был раздел про производительность, и в комментариях несколько человек спросили примерно одно и то же: «а что конкретно вы дебажили и как?».</p><p>Это продолжение. Три инцидента из двух разных проектов — банковской системы после миграции и enterprise-платформы на Java/Spring, где PostgreSQL жил под Hibernate. Разные домены, разные команды, но сюжет один: запрос, который вчера работал, сегодня не работает, а <code>EXPLAIN</code> показывает, что всё хорошо.</p><p>Если вы пришли в PostgreSQL из Oracle или из мира, где база — это «то, куда ORM пишет», три четверти статьи будут про вещи, о существовании которых вы не подозревали. Я тоже не подозревал.</p><p><em>Дисклеймер: проекты под NDA, названия, объёмы и часть деталей изменены. Порядок величин и сами инциденты — настоящие.</em></p> <a href="https://habr.com/ru/articles/1079692/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1079692#habracut">Читать далее</a>
Read full article →