Рубрика «оптимизация SQL»

Достаточно большое количество проблем производительности в backend-приложениях на самом деле находятся не в коде. За последние пару лет мне несколько раз приходилось разбирать системы, где:

  • API отвечало слишком долго

  • CPU базы был загружен почти на 100%

При этом всем, инфраструктура мощная: достаточное количество RAM, NVMe-диски ну и конечно же CPU последних поколений. Но проблема почти всегда оказывалась в SQL-запросах.
Я хочу поделиться реальным опытом, как мы оптимизировали PostgreSQL в десятки раз

Кейс 1. Индекс, который помог ускорить запрос

Один из самых типичных запросов в системе:

Читать полностью »

Неделю назад прилетел тикет: «Страница заказов грузится вечность». Открыл — действительно, 12 секунд на первую загрузку. На проде. С реальными пользователями.

Спойлер: проблема была в том месте, куда я смотрел последним.

Что имеем

Типичный интернет-магазин на Django + PostgreSQL. Админка, где менеджеры смотрят список заказов. Таблица orders — примерно 800 тысяч записей, растёт на 2-3 тысячи в день.

Запрос, который дёргает страница:

SELECT * FROM orders 
WHERE status = 'pending' 
ORDER BY created_at DESC 
LIMIT 50;

Казалось бы, что тут сложного? LIMIT 50, да ещё и с фильтром по статусу.

Первые подозрения

Открыл EXPLAIN ANALYZEЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js