В субботу, в 2 часа ночи, разбираясь с очередной аварией в Postgres на Heroku (запросы по 35 минут, IOPS на пределе), автор статьи понял, что пора уже разобраться по-человечески: что вообще значит читать с диска? Оказалось, что между SELECTом и железкой аж три слоя кэширования: shared buffers (внутренний кэш Postgres), page cache (кэш на уровне ядра Linux) и сам диск (в случае Heroku - сетевой EBS от AWS). Покопавшись в логах, он выяснил, что проблема не в железе, а в кривых запросах - они тупо выгребали по индексу десятки тысяч строк с нужным id, потом применяли фильтры к JSONB и выбрасывали почти всё, сжигая IOPS и читая сотни мегабайт с диска впустую
17.02.2026
Похожее
25.05.2026
Scylla Control Plane
Discord построил SCP (Scylla Control Plane) фреймворк на Rust для автоматизации ...
17.05.2026
Поиск в DuckDB
В статье автор разбирается в возможностях полнотекстового поиска в DuckDB. Он...
09.04.2026
Шахматы на SQL
Автор демонстрирует, как можно реализовать полноценную игру в шахматы, используя...
07.04.2026
Современный SQLite
Это гораздо больше, чем просто встраиваемая база данных. SQLite поддерживает...