
Performance Optimization
Tối ưu hóa truy vấn, vấn đề N+1, eager loading, lazy loading, chiến lược caching, lập chỉ mục cơ sở dữ liệu, công cụ profiling
1Vấn đề N+1 trong Laravel là gì?
Vấn đề N+1 trong Laravel là gì?
Câu trả lời
Vấn đề N+1 xảy ra khi Eloquent thực thi một truy vấn để lấy một collection, rồi một truy vấn bổ sung cho mỗi phần tử để tải một quan hệ. Điều này nhân lên số lần truy cập cơ sở dữ liệu và làm giảm nghiêm trọng hiệu năng ở quy mô lớn. Dùng eager loading với with() tải tất cả các quan hệ trong một truy vấn bổ sung duy nhất thay vì N truy vấn.
2Nên dùng phương thức nào để giải quyết vấn đề N+1 khi tải các quan hệ?
Nên dùng phương thức nào để giải quyết vấn đề N+1 khi tải các quan hệ?
Câu trả lời
Phương thức with() thực hiện eager loading, tải các quan hệ trong một truy vấn bổ sung duy nhất. Thay vì thực thi một truy vấn cho mỗi model khi truy cập quan hệ, tất cả các quan hệ được tải trước. Điều này giảm đáng kể số lượng truy vấn SQL và cải thiện hiệu năng.
3Sự khác biệt giữa eager loading và lazy loading là gì?
Sự khác biệt giữa eager loading và lazy loading là gì?
Câu trả lời
Eager loading tải các quan hệ ngay lập tức cùng truy vấn chính qua with(), trong khi lazy loading tải các quan hệ theo yêu cầu khi truy cập lần đầu. Lazy loading có thể gây ra vấn đề N+1 nếu các quan hệ được truy cập trong một vòng lặp. Eager loading được khuyến nghị khi các quan hệ sẽ được dùng để tránh nhiều truy vấn.
Vai trò của Cache::remember() trong Laravel là gì?
Sự khác biệt giữa Cache::remember() và Cache::rememberForever() là gì?
+19 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Laravel khác
Cơ bản về PHP
Kiến thức cơ bản về OOP trong PHP
Composer & Autoloading
Kiến thức cơ bản về Laravel
Routing trong Laravel
Blade Templates
Request & Response
Kiến thức cơ bản về Eloquent ORM
Eloquent Relationships
Migrations & Schema Builder
Xác thực và Form
Xác thực
Phân quyền và Policies
API Resources & Authentication
Middleware
Service Container & DI
Queues & Jobs
Events & Listeners
Thông báo & 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
Nắm vững Laravel cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí