3

WebTech

Личный кабинет

Проекты, коммерческие предложения, документы и отчёты — в одном месте.

Войти Зарегистрироваться Забыли пароль?
Разработка

Как подготовить Laravel-приложение к высокой нагрузке

Порядок действий, который реально влияет на скорость: от индексов и устранения запросов в цикле до очередей, кэша и Octane.

Команда WebTechRetail 3 мин чтения

Оптимизация почти никогда не начинается с покупки более мощного сервера. В большинстве проектов первое ускорение в разы даёт база данных, а не инфраструктура.

Ниже — порядок работ, который мы применяем: от самого дешёвого и самого результативного к самому сложному.

Шаг 1. Найти, что тормозит

  • Логировать медленные запросы и смотреть, какие из них выполняются чаще всего.
  • Проверить, нет ли запросов внутри циклов — классическая проблема N+1.
  • Замерить время ответа критичных страниц до изменений, иначе эффект будет не с чем сравнивать.

Шаг 2. База данных

  • Индексы под реальные условия выборки, а не «на всякий случай» под каждую колонку.
  • Eager loading вместо запросов в цикле.
  • Пагинация вместо выборки всех строк, агрегаты в базе вместо подсчётов в PHP.
  • Проверка планов выполнения запросов на больших таблицах.

Шаг 3. Всё, что можно не считать

  • Тяжёлые вычисления — в фоновые задачи, ответ пользователю сразу.
  • Кэширование справочников, счётчиков и результатов дорогих запросов.
  • Кэш конфигурации, маршрутов и представлений на проде.

Шаг 4. Очереди и фоновые задачи

Письма, выгрузки, обмен с внешними системами и генерация документов не должны происходить в запросе пользователя. Очередь не только ускоряет ответ, но и делает систему устойчивее: сбой внешнего сервиса перестаёт ломать сценарий целиком.

// Вместо синхронной отправки в запросе
SendInvoice::dispatch($order)->onQueue('documents');

// Очередь переживает недоступность внешнего сервиса
public function failed(Throwable $e): void
{
    Log::error('Счёт не отправлен', ['order' => $this->order->id]);
}

Шаг 5. Инфраструктура

  • Горизонтальное масштабирование приложений и вынесение сессий и кэша из файлов.
  • Отдельный сервер для очередей, чтобы фоновые задачи не конкурировали с вебом.
  • CDN и сжатие статики.
  • Laravel Octane — уже в самом конце, когда код перестал делать лишнюю работу.

Octane ускоряет приложение, но не исправляет медленные запросы: он убирает накладные расходы на загрузку фреймворка. Если узкое место — база, прирост будет скромным.

С чего начать

Если непонятно, где именно узкое место, начинать стоит с технического аудита: он даёт список конкретных проблем с оценкой эффекта. Дальше производительность улучшается уже точечно, по этому списку.

Обсудим вашу задачу

Опишите ситуацию — вернёмся с вопросами и предложением. Бесплатный аудит и оценка сроков.

Бесплатный аудит

Получите бесплатный аудит интернет-магазина

За 3 рабочих дня разберём: где вы теряете заявки, какие каналы недооценены, и что даст рост в первые 30 дней.

Разбор технической части сайта: скорость, SSR, фильтры
Аудит текущей рекламы: где сливается бюджет
Анализ конкурентов в вашей нише
Прогноз CPL, ROAS и окупаемости
План действий на первый месяц
За этот месяц
42 компании получили аудит
30 мин
реакция
3 дня
аудит
100%
доступ к кабинетам

Заявка на аудит

Без обязательств. С конкретными цифрами.

Бесплатно

Ответим в течение 30 минут в рабочее время