▶️ Перегляньте відеоурок (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-кратного підвищення продуктивності - і це лише початок. У наступному епізоді ми підемо ще далі, перемістивши обчислення на рівень бази даних.
Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше
Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення