Laravel

Performance Optimization

Оптимізація запитів, проблема N+1, eager loading, lazy loading, стратегії кешування, індексація бази даних, інструменти профілювання

22 питань зі співбесід·
Senior
1

Що таке проблема N+1 у Laravel?

Відповідь

Проблема N+1 виникає, коли Eloquent виконує один запит для отримання колекції, а потім додатковий запит на кожен елемент для завантаження зв'язку. Це примножує звернення до бази даних і суттєво погіршує продуктивність на великих обсягах. Використання eager loading з with() завантажує всі зв'язки одним додатковим запитом замість N запитів.

2

Який метод слід використовувати для вирішення проблеми N+1 під час завантаження зв'язків?

Відповідь

Метод with() виконує eager loading, який завантажує зв'язки одним додатковим запитом. Замість виконання одного запиту на модель під час доступу до зв'язку, усі зв'язки завантажуються заздалегідь. Це різко зменшує кількість SQL-запитів і покращує продуктивність.

3

Яка різниця між eager loading та lazy loading?

Відповідь

Eager loading завантажує зв'язки одразу разом з основним запитом через with(), тоді як lazy loading завантажує зв'язки на вимогу при першому зверненні. Lazy loading може спричинити проблему N+1, якщо до зв'язків звертаються у циклі. Eager loading рекомендується, коли зв'язки будуть використовуватися, щоб уникнути множинних запитів.

4

Яку роль виконує Cache::remember() у Laravel?

5

Яка різниця між Cache::remember() та Cache::rememberForever()?

+19 питань зі співбесід

Інші теми співбесід Laravel

Опануй Laravel для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно