Lợi ích của eager loading là gì, bạn sử dụng nó khi nào?
Lợi ích của eager loading là gì, bạn sử dụng nó khi nào?
Eager loading là một tính năng của Eloquent ORM trong Laravel, giúp giảm đáng kể số lượng truy vấn SQL cần thiết để tải các quan hệ của model. Khi sử dụng eager loading, các quan hệ (relations) được truy vấn ngay lập tức sau khi truy vấn của model chính được thực hiện, giúp hạn chế vấn đề N+1 query, nơi mà mỗi đối tượng trong một tập hợp sẽ gây ra một truy vấn SQL riêng biệt để tải quan hệ của nó[1][3].
Eager loading được sử dụng khi bạn biết trước rằng bạn sẽ cần truy cập đến các quan hệ của một model trong một lần truy vấn. Ví dụ, khi bạn lấy ra tất cả các đối tượng của một model và bạn biết rằng bạn cũng sẽ cần thông tin từ các quan hệ của chúng, sử dụng eager loading sẽ giúp bạn tải tất cả thông tin cần thiết trong một lần truy vấn thay vì phải thực hiện nhiều truy vấn riêng lẻ, từ đó cải thiện hiệu suất ứng dụng[3][9].
Một ví dụ cụ thể là khi bạn có một model Book
và một model Author
có quan hệ với nhau, và bạn muốn lấy ra tất cả sách cùng với thông tin tác giả của chúng. Thay vì lấy ra tất cả sách và sau đó thực hiện một truy vấn riêng lẻ cho mỗi tác giả (gây ra vấn đề N+1 query), bạn có thể sử dụng eager loading để tải tất cả thông tin sách và tác giả trong một truy vấn duy nhất[3].
Citations:
[1] https://chungnguyen.xyz/l...
middle
Chưa có bình luận nào