Quay lại thư viện câu hỏi
ruby on rails Junior

Trong Ruby on Rails, sự khác biệt giữa Eager Loading và Lazy Loading là gì và khi nào bạn nên ưu tiên sử dụng từng phương pháp để tối ưu hóa truy vấn cơ sở dữ liệu?

Bản chất cơ chế

  • Lazy Loading: Là cơ chế mặc định của Active Record. Dữ liệu chỉ được truy vấn từ cơ sở dữ liệu khi bạn thực sự gọi đến thuộc tính của đối tượng đó. Điều này giúp tiết kiệm bộ nhớ nhưng dễ dẫn đến vấn đề N+1 queries.
  • Eager Loading: Là kỹ thuật tải trước các dữ liệu liên quan (associations) ngay từ đầu bằng cách sử dụng các phương thức như includes, preload, hoặc eager_load.

Khi nào nên sử dụng

  • Sử dụng Lazy Loading: Khi bạn chỉ cần truy xuất dữ liệu của một đối tượng đơn lẻ hoặc các điều kiện logic phức tạp khiến việc tải trước dữ liệu trở nên lãng phí.
  • Sử dụng Eager Loading: Khi bạn hiển thị danh sách (collection) và cần truy cập vào các bảng liên quan (ví dụ: User có nhiều Posts).

Ví dụ code

# Lazy Loading (Dễ gây N+1)
users = User.limit(10)
users.each { |user| puts user.posts.count }

# Eager Loading (Tối ưu)
users = User.includes(:posts).limit(10)
users.each { |user| puts user.posts.count }

Lưu ý thực chiến

Luôn sử dụng gem bullet trong môi trường phát triển để tự động phát hiện các truy vấn N+1 mà bạn vô tình tạo ra.

Luyện tập câu hỏi này trong chế độ đếm ngược mô phỏng phỏng vấn thật:
Phòng Luyện Tập
Khóa học Chuyên sâu Chủ đề ruby on rails

Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp

Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.

Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)

Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.

High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học