Skillsline: Оптимизация запроса к базе, 12,41 до 2,451 с
Цикл из множества запросов стал одним агрегирующим запросом. Время сократилось с 12,41 до 2,451 секунды, нагрузка CPU с 82,2% до 2,75%.
Контекст проекта
Backend- и frontend-работа над учебной платформой с интеграциями партнёрских сервисов, с фокусом на производительности базы данных и приложения.
Мой технический вклад
- Заменил цикл со множеством запросов к базе одним агрегирующим запросом: время сократилось с 12,41 до 2,451 секунды, а потребление памяти уменьшилось на 1,5 ГБ.
- Снизил среднюю недельную нагрузку CPU с 82,2% до 2,75% и обнаружил отсутствующие поисковые индексы.
- Сократил среднее время критической операции с 23 937 мс до 48 мс, а размер ответа API — с 912 КБ до 2,1 КБ.
Результаты и их границы
Точечные изменения запросов, получения данных и узких мест приложения дали измеримый результат. Каждая цифра относится к конкретной операции или показателю, а не к ускорению всей платформы.
- Операция с базой данных
- 12.41 → 2.451 s
- Средняя недельная нагрузка CPU
- 82.2% → 2.75%
- Размер ответа API
- 912 → 2.1 KB
Использованные технологии
- Strapi
- Vue.js
- MySQL
- Node.js
- Laravel
- AWS
- REST API
- Linux