Задержка убивает приложение
(продолжение предыдущего поста)
5 проверенных способов для снижения задержки:
1. Оптимизируйте запросы к базе данных
Один плохо написанный запрос может добавить 500 мс задержки, и вы даже не заметите этого. Умножьте это на тысячи запросов — и получите катастрофу.
Медленные запросы = медленный продукт.
* Прекратите использовать SELECT *.
* Добавьте индексы.
* Избавьтесь от проблемы N+1.
* Измеряйте, не гадайте (EXPLAIN — ваш лучший инструмент).
2. Сократите сетевые переходы
Каждый раз, когда запрос проходит через Service A → Service B → Service C → Service D...
Вы добавляете задержку.
* Объединяйте мелкие сервисы там, где это имеет смысл.
* Проверьте подход backend-for-frontend (BFF).
3. Кешируйте часто используемые данные
Если данные не меняются, зачем запрашивать их снова?
Держите их в памяти. Подходящие инструменты: cессииа, каталоги, конфигурация. Отправляйте быстро.
Устаревший кеш — это плохо. Но чаще отсутствие кеша — ещё хуже.
4. Группируйте и параллелизуйте запросы
Задержка накапливается, когда вы отправляете несколько маленьких запросов последовательно.
Не делайте 10 запросов для 10 элементов.
Группируйте их.
Или используйте параллельные запросы.
Меньше запросов. Быстрые результаты.
5. Сократите передачу данных
Отправка избыточных данных — это как доставка грузовика, когда нужен только рюкзак.
* Удалите неиспользуемые поля.
* Сжимайте ответы.
* Используйте пагинацию.
* Оптимизируйте изображения.
Post #2148
1.9K
- 👏 13
- 👍 7
- 🔥 4
- ❤ 3
- ⚡ 2
- 😁 1
- 🤓 1