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