В субботу, в 2 часа ночи, разбираясь с очередной аварией в Postgres на Heroku (запросы по 35 минут, IOPS на пределе), автор статьи понял, что пора уже разобраться по-человечески: что вообще значит читать с диска? Оказалось, что между SELECTом и железкой аж три слоя кэширования: shared buffers (внутренний кэш Postgres), page cache (кэш на уровне ядра Linux) и сам диск (в случае Heroku - сетевой EBS от AWS). Покопавшись в логах, он выяснил, что проблема не в железе, а в кривых запросах - они тупо выгребали по индексу десятки тысяч строк с нужным id, потом применяли фильтры к JSONB и выбрасывали почти всё, сжигая IOPS и читая сотни мегабайт с диска впустую
17.02.2026
Похожее
17.02.2026
Введение в Turso
Turso - это SQLite, только распределенный и переписанный на Rust. Штука хорошая,...
05.02.2026
Логическая репликация
Я тут начал ковырять как работают всякие инстументы для репликации данных из пос...
03.02.2026
Индексы в постгре
Неплохой гайд про то, как на самом деле работают индексы в PostgreSQL. Индексы п...
29.01.2026
VictoriaLogs
В статье про VictoriaLogs. Это ресурсоэффективное, быстрое и лёгкое схема-незави...