Laravel

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

22 câu hỏi phỏng vấn·
Senior
1

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.

2

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.

3

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.

4

Vai trò của Cache::remember() trong Laravel là gì?

5

Sự khác biệt giữa Cache::remember() và Cache::rememberForever() là gì?

+19 câu hỏi phỏng vấn

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í