Привет! Меня зовут Тимур Исламгулов. Я преподаю в МФТИ и веду вебинары по PostgreSQL на курсе «Аналитик данных» в Нетологии. За эти годы я насмотрелся, как разработчики поднимают лишнюю инфраструктуру там, где хватило бы самой базы, — об этом и поговорим.
Рубрика «индексы»
PostgreSQL для бэкендера: 10 фич, которыми мало пользуются, а зря
2026-06-30 в 18:44, admin, рубрики: postgresql, SKIP LOCKED, sql, базы_данных, бэкенд, индексы, оконные функции, оптимизация запросов, очередь задач, полнотекстовый поискВаш PostgreSQL болеет молча. Десяток запросов, чтобы это увидеть
2026-05-30 в 11:01, admin, рубрики: bloat, IDE, postgresql, sql, vacuum, индексы, производительность, транзакции, тяжелые запросыПятница, вечер. Один из эндпоинтов начал отвечать секунд по восемь вместо привычных двухсот миллисекунд. Графики в Grafana — зелёные. CPU спокойный, память на месте, диск не забит. По всем дашбордам база здорова. А она не здорова.
Знакомая ситуация: мониторинг показывает, что сервер жив, но не показывает, что внутри базы что-то медленно гниёт. Раздулась таблица. Появился индекс, которым никто не пользуется, но который тормозит каждый INSERT. Висит забытая транзакция и держит блокировку. Ничего из этого не «падает» — оно просто потихоньку делает базу хуже, пока в пятницу вечером не станет совсем плохо.
Как один индекс на created_at сократил время ответа API с 12 секунд до 40 мс
2026-01-28 в 20:54, admin, рубрики: django, explain analyze, postgresql, индексы, оптимизация SQL, производительность БД, составной индексНеделю назад прилетел тикет: «Страница заказов грузится вечность». Открыл — действительно, 12 секунд на первую загрузку. На проде. С реальными пользователями.
Спойлер: проблема была в том месте, куда я смотрел последним.
Что имеем
Типичный интернет-магазин на Django + PostgreSQL. Админка, где менеджеры смотрят список заказов. Таблица orders — примерно 800 тысяч записей, растёт на 2-3 тысячи в день.
Запрос, который дёргает страница:
SELECT * FROM orders
WHERE status = 'pending'
ORDER BY created_at DESC
LIMIT 50;
Казалось бы, что тут сложного? LIMIT 50, да ещё и с фильтром по статусу.
Первые подозрения
Открыл EXPLAIN ANALYZEЧитать полностью »
Black-White Array: новая структура данных с O(log N) аллокаций
2026-01-14 в 6:27, admin, рубрики: allocation, computer science, optimization, orderedset, Алгоритмы, индексы, множество, оптимизация, производительность, структуры данныхКратко
Black-White Array (BWA) — это упорядоченная структура данных с амортизированным временем операций вставки/поиска/удаления и Читать полностью »
Нейросеть против PostgreSQL: системные ошибки AI в прогнозировании производительности под нагрузкой
2025-11-22 в 8:18, admin, рубрики: deepseek, postgresql, postgresql performance, анализ производительности, высокая нагрузка, индексы, искусственный интеллект, нейросети, прогнозирование, статистический анализОжидания в избытке: как лишние индексы тормозят PostgreSQL и чем поможет pg_expecto
2025-10-20 в 12:40, admin, рубрики: Pgbench, postgres, postgresql, индексы, нагрузочное тестирование, расширение, статистический анализ, СУБД
«Мы пожинаем
wait_eventЧитать полностью »
PostgreSQL против 10 миллионов записей: оптимизация запросов, которая спасла наш проект
2025-10-03 в 14:16, admin, рубрики: BigData, explain analyze, postgresql, sql, базы данных, Большие данные, индексирование, индексы, оптимизация запросов, производительность
PostgreSQL против 10 миллионов записей: оптимизация запросов, которая спасла наш проект
Пролог: Когда база данных говорит «нет»
Это был обычный понедельник. Я пил кофе, проверял почту, и вдруг — волна уведомлений в Slack. «Сайт не грузится!», «Отчеты зависли!», «Что происходит?».
Хеш-индексы в PostgreSQL: быстрый поиск или скрытые проблемы?
2025-02-13 в 9:15, admin, рубрики: B-Tree vs Hash, dba, hash, sql, базы_данных, индексы, оптимизация запросов, производительность, разработкаИндексы — важнейший инструмент оптимизации запросов в базах данных. В PostgreSQL одним из вариантов является хеш-индекс. В отличие от B-tree, он работает исключительно с операциями равенства (=) и использует бакеты для хранения ссылок на строки таблицы. Давайте разберёмся, как PostgreSQL управляет этими бакетами, какие особенности у хеш-индекса и в каких случаях его применение оправдано.
Что такое бакеты в хеш-индексе PostgreSQL?
При создании хеш-индекса PostgreSQL применяет хеш-функцию к каждому значению индексируемого столбца. Результат хеширования определяет, в какой бакет (bucket) попадёт запись.
Клетка ХХ. Индексы обитаемости и подобия Земле
2025-01-10 в 13:57, admin, рубрики: атмосфера, внеземные цивилизации, гравитация, звезды, индексы, магнитное поле, обитаемость, планеты, сигналы, спутникиПродовольственная безопасность. Часть I
2024-11-13 в 8:48, admin, рубрики: безопасность, Доктрина, Земля, Зерновые, индексы, масличные, население, политика, продукты, ресурс
Продовольственная безопасность — элемент национальной безопасности государства. Продовольственная безопасность является одной из главных целей аграрной и Читать полностью »


