В субботу, в 2 часа ночи, разбираясь с очередной аварией в Postgres на Heroku (запросы по 35 минут, IOPS на пределе), автор статьи понял, что пора уже разобраться по-человечески: что вообще значит читать с диска? Оказалось, что между SELECTом и железкой аж три слоя кэширования: shared buffers (внутренний кэш Postgres), page cache (кэш на уровне ядра Linux) и сам диск (в случае Heroku - сетевой EBS от AWS). Покопавшись в логах, он выяснил, что проблема не в железе, а в кривых запросах - они тупо выгребали по индексу десятки тысяч строк с нужным id, потом применяли фильтры к JSONB и выбрасывали почти всё, сжигая IOPS и читая сотни мегабайт с диска впустую
17.02.2026
Похожее
03.10.2026
Одна вставка руинит все
Разбор write amplification в PostgreSQL. Одна вставка строки в 40 байт на та...
02.09.2026
Исполняемы файл - это SQLite база
Куда только этот ваш SQLite не запихивали Статья рассказывает о проекте SELF ...
28.08.2026
DuckDB v2.0
Авторы DuckDB представляют анонс крупного релиза v2.0 - Cyanoptera. Более 10...
28.08.2026
PostgreSQL для всего
Я уже как-то писал про проект "PostgreSQL для всего". Вот эта статья с такой же ...