Cách tốt nhất để tìm hiểu là kiểm tra, tất nhiên. Câu trả lời có thể khác nhau tùy thuộc vào kích thước của tập dữ liệu, số lượng các siêu khóa khác nhau, sự phân bố của chúng (có phải tất cả các thực thể đều có giá trị cho tất cả các siêu khóa hay chỉ cho một vài trong số chúng?), Cài đặt cơ sở dữ liệu của bạn máy chủ và có thể nhiều yếu tố khác.
Nếu tôi đoán, tôi muốn nói rằng chi phí của JOIN
hoạt động trong tùy chọn 2 sẽ nhỏ hơn chi phí của GROUP BY
và tổng hợp các chức năng cần thiết trong tùy chọn 1 và 3.
Vì vậy, tôi hy vọng sẽ tìm thấy Tùy chọn 2 nhanh hơn 1 và 3.
Để đo lường Tùy chọn 4, bạn sẽ phải xem xét nhiều yếu tố hơn vì ứng dụng có thể nằm trong một máy chủ khác, do đó phải tính đến tải của hai máy chủ (db và ứng dụng) và số lượng máy khách sẽ yêu cầu các kết quả này .
Ghi chú bên lề:bạn cần GROUP BY e.ID
trong tùy chọn 1 và 3.