▶️ Переглянути відеоурок (7-8 хвилин)
Вивчення проблеми N+1 запитів - Laravel In Practice EP5
Ваша панель управління завантажується, але щось іде не так. Дані правильні, код виглядає чистим, але користувачі скаржаться на повільну роботу. Що, якби я сказав вам, що ваша, на перший погляд, проста панель таємно навантажує базу даних сотнями зайвих запитів?
У цьому епізоді Laravel In Practice я покажу, як профілювати вашу Laravel програму та виявити приховані проблеми з продуктивністю. Ви дізнаєтеся, як встановити та налаштувати Laravel Telescope для спостереження за тим, що відбувається за лаштунками, виявити проблеми N+1 запитів, які тихо знижують продуктивність, і зрозуміти, чому ваша, здавалося б, проста панель генерує більше 400 запитів до бази даних.
Результат? Ви виявите шокуючі вузькі місця в продуктивності, про які не здогадувалися. Ваше завантаження сторінки за 150 мс не є наслідком складних обчислень — це наслідок упереджувальних проблем з базою даних. Ви точно побачите, які запити виконуються, скільки разів їх викликали і чому ваша база даних працює в 100 разів більше, ніж потрібно.
Цей епізод запускає частину оптимізації продуктивності в Laravel In Practice, ґрунтуючись на системі звітності з епізодів 1-4. Той чудовий код, який ми написали? Він працює, але насправді є неефективним. Тепер ви навчитеся виявляти ці проблеми до того, як їх помітять ваші користувачі, використовуючи справжні інструменти профілювання, а не здогадки про те, що працює повільно.
Чи то ви налагоджуєте повільну панель, чи розслідуєте скарги клієнтів, або просто цікавитеся продуктивністю вашого додатку — ці техніки профілювання відкривають істину. Telescope розповідає всю історію — кожен запит, кожне завантаження моделі, кожен хіт кешу. Ви створите базові показники, які вимірюють реальну продуктивність, а не здогадки.
Стратегії профілювання, які ми впроваджуємо тут, закладають основу для драматичних оптимізацій, які чекають у наступних епізодах.