
Performance Optimization
Оптимізація запитів, проблема N+1, eager loading, lazy loading, стратегії кешування, індексація бази даних, інструменти профілювання
1Що таке проблема N+1 у Laravel?
Що таке проблема N+1 у Laravel?
Відповідь
Проблема N+1 виникає, коли Eloquent виконує один запит для отримання колекції, а потім додатковий запит на кожен елемент для завантаження зв'язку. Це примножує звернення до бази даних і суттєво погіршує продуктивність на великих обсягах. Використання eager loading з with() завантажує всі зв'язки одним додатковим запитом замість N запитів.
2Який метод слід використовувати для вирішення проблеми N+1 під час завантаження зв'язків?
Який метод слід використовувати для вирішення проблеми N+1 під час завантаження зв'язків?
Відповідь
Метод with() виконує eager loading, який завантажує зв'язки одним додатковим запитом. Замість виконання одного запиту на модель під час доступу до зв'язку, усі зв'язки завантажуються заздалегідь. Це різко зменшує кількість SQL-запитів і покращує продуктивність.
3Яка різниця між eager loading та lazy loading?
Яка різниця між eager loading та lazy loading?
Відповідь
Eager loading завантажує зв'язки одразу разом з основним запитом через with(), тоді як lazy loading завантажує зв'язки на вимогу при першому зверненні. Lazy loading може спричинити проблему N+1, якщо до зв'язків звертаються у циклі. Eager loading рекомендується, коли зв'язки будуть використовуватися, щоб уникнути множинних запитів.
Яку роль виконує Cache::remember() у Laravel?
Яка різниця між Cache::remember() та Cache::rememberForever()?
+19 питань зі співбесід
Інші теми співбесід Laravel
Основи PHP
Основи ООП у PHP
Composer & Autoloading
Основи Laravel
Маршрутизація в Laravel
Blade Templates
Request & Response
Основи Eloquent ORM
Eloquent Relationships
Migrations & Schema Builder
Валідація та форми
Автентифікація
Авторизація та Policies
API Resources & Authentication
Middleware
Service Container & DI
Queues & Jobs
Events & Listeners
Сповіщення та Mail
File Storage
Testing & PHPUnit
Caching
Livewire & Inertia
Eloquent Advanced
Repository Pattern
Laravel Packages
Security Best Practices
Laravel Octane
Laravel Distributed Systems
Observability & Monitoring
Deployment & DevOps
Опануй Laravel для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно