Kết nối bên ngoài đắt hơn so với kết nối bên trong. Những gì tôi sắp nói sẽ gây nhiều tranh cãi cho nhiều người. Nếu bạn điều chỉnh cơ sở dữ liệu đúng và nếu bạn không làm bất cứ điều gì ngốc nghếch và nếu bạn đang sử dụng một sức mạnh chuyên nghiệp RDBMS, sau đó 7 bên trong tham gia không phải là một vấn đề.
Tôi có ý nghĩa gì khi điều chỉnh cơ sở dữ liệu? Có rất nhiều điều chỉnh cơ sở dữ liệu nhưng điều rõ ràng nhất để kiểm tra là đảm bảo rằng bạn luôn tham gia trên các cột được lập chỉ mục.
Tôi có ý gì khi ngốc nghếch? Không sử dụng toán tử OR trong điều kiện kết nối của bạn. Cố gắng giữ cho sự tham gia của bạn qua một so sánh đơn như một khoá ngoại trong một bảng bằng khóa chính trong bảng khác. Cố gắng giữ tất cả các trường chính của bạn được nhập là số nguyên.
Nếu bạn gặp sự cố về hiệu suất, hãy đảm bảo nghiên cứu kế hoạch thực hiện của truy vấn vi phạm. Ví dụ: bạn có thể gặp sự cố khi tham gia trên các bảng thực sự lớn, quá lớn đến nỗi việc quét chỉ mục quá chậm. Bạn có thể phải không chuẩn hóa và cung cấp thêm tính năng lọc để giảm thời gian quét. Đừng cố gắng đoán trước điều này. Không chuẩn hóa được thực hiện tốt nhất một cách hiếm hoi và chỉ sau khi bạn chạy vào tình huống thực tế của thế giới thực.
bạn có chỉ mục trên các cột được sử dụng cho điều kiện kết nối (cũng như bất kỳ cột nào được sử dụng cho điều kiện khác, như trong mệnh đề where) không? nó có thể * thực sự * giúp đỡ. Nói chung, tôi đã nghe nói bên trong là tốt hơn cho hiệu suất hơn trái - nhưng những gì nên được sử dụng phụ thuộc vào những gì bạn muốn nhận được ^^ –