Узнайте, как радикально улучшить производительность ваших приложений Laravel, перенеся больше работы в базу данных, используя Eloquent ORM.
Проблемы с производительностью отстой. Клиенты расстроены. Ваши серверы перегружены. Управление дышит тебе в шею.
Вы уже решили все проблемы с N + 1, добавили необходимые индексы и даже платите за самый дорогой из доступных серверов баз данных. Но, несмотря на все это, некоторые вещи просто невозможно создать качественно.
Таким образом, вы тратите месяцы на разные стратегии кэширования, чтобы попытаться ускорить процесс, но кэширование сложно. Каждый раз, когда вы думаете, что решили проблему с производительностью, вместо этого у вас возникает новая проблема с кэшированием.
Я был там, и это отстой. Поэтому однажды я решил: «Вот и все, я собираюсь выяснить, как перенести всю эту работу в базу данных». Результаты поразили меня.
Используя передовые методы работы с базами данных, такие как подзапросы, условные агрегаты и агрессивное использование областей, страницы, которые загружались более 30 секунд, теперь загружались в течение 500 мс !!
С тех пор я говорил о производительности Eloquent и баз данных в Laracon Online и Laracon US, а также написал подробные статьи по этой теме.
Eloquent Performance Patterns - кульминация всего, что я выучил за время моего путешествия, объединенного в один курс. Мы собираемся углубиться в продвинутые проблемы реального мира. Это не очередной вводный курс Eloquent.
Что вы узнаете?
- Три ключевых показателя для повышения производительности базы данных
- Невероятная сила подзапросов
- Когда использовать объединения против подзапросов
- Использование подзапросов для выбора связанных данных
- Использование подзапросов для построения динамических отношений
- Использование подзапросов для сортировки по связанным данным
- Расчет итогов с использованием условных агрегатов
- Запуск политик авторизации в базе данных
- Построение сложных поисковых фильтров
- Расширение построителя запросов с помощью макросов
- Демистификация индексов базы данных
- Ввод сложных запросов без ущерба для API Eloquent
- Использование специфичных для поставщика функций (MySQL, Postgres и т. д.)
- Кэширование и денормализация базы данных
- Как безопасно писать необработанные запросы к базе данных
- Конфигурирование Laravel, чтобы сделать невозможным N + 1
- Расширение Eloquent для поддержки сортировки с NULLS LAST и NULLS FIRST
- Получение расстояния между двумя географическими точками
- Фильтрация по географическому расстоянию
- Сортировка по географическому расстоянию
- Запрос записей в физической области с использованием геопространственных форм