Оптимізація запитів та додавання індексів: як зменшити 400 запитів до 4 — Laravel на практиці, випуск 6

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 08 жовтня, 2025
Покращте продуктивність вашої панелі керування Laravel у кілька простих кроків! У цій статті ви дізнаєтеся, як зменшити кількість запитів з 400 до всього 4, а час відгуку — з 180 мс до 40 мс. Чи готові ви вдосконалити свій проект? Читайте далі!

▶️ Перегляньте відеоурок (6 хвилин)

Різке покращення продуктивності вашої панелі Laravel - Laravel In Practice EP6

Ваша панель здійснює понад 400 запитів, але вирішення цієї проблеми простіше, ніж здається. А що, якби я сказав вам, що кілька стратегічних змін можуть знизити цю кількість до 4 запитів та зменшити час відповіді з 180 мс до 40 мс?

У цьому епізоді Laravel In Practice я покажу, як позбутися N+1 запитів та додати стратегічні індекси в базі даних, не порушуючи чисту архітектуру. Ви навчитеся виправляти метод визначення найкращих клієнтів, який генерував сотні запитів, використовуючи loadMissing() та таблиці для пошуку. Додамо складні індекси до частовикористовуваних колонок, таких як статус та user_id, а також використаємо плани запитів EXPLAIN для перевірки результативності ваших оптимізацій.

Результат? Кількість запитів на вашій панелі скорочується з понад 400 до лише 4. Ваша повільна завантаження у 187 мс стає швидкою - лише 53 мс. Ви побачите, як індекси дозволяють SQL переходити безпосередньо до відповідних рядків, а не сканувати всю таблицю, і як перевірити ці покращення за допомогою тестових маршрутів, які вимірюють реальні збільшення продуктивності.

Це продовжує наш шлях до оптимізації продуктивності, систематично усуваючи проблеми N+1, про які ми дізналися за допомогою Telescope в епізоді 5. Ніяких складних переписувань - лише розумніше використання loadMissing() для уникнення зайвого завантаження зв’язків і стратегічні індекси, додані через просту міграцію.

Навіть якщо ви налагоджуєте повільну панель або запобігаєте майбутнім заторам, ці техніки є незамінними. Ви дізнаєтеся, як створювати таблиці для пошуку, які запобігають зайвій ітерації, коли використовувати складні індекси для запитів з кількома колонками, і як довести ефективність ваших оптимізацій, використовуючи функції пояснення бази даних Laravel.

Оптимізації запитів та стратегії індексування, які ми реалізуємо тут, досягають 4.5-кратного підвищення продуктивності - і це лише початок. У наступному епізоді ми підемо ще далі, перемістивши обчислення на рівень бази даних.

▶️ Перегляньте епізод 6 зараз →