STRAIGHT_JOIN
buộc thứ tự nối của các bảng, vì vậy table1
được quét trong vòng lặp bên ngoài và table2
trong vòng lặp bên trong.
Trình tối ưu hóa không hoàn hảo (mặc dù khá ổn) và nguyên nhân có thể xảy ra nhất là số liệu thống kê đã lỗi thời.
Không, chỉ khi trình tối ưu hóa sai. Điều này có thể xảy ra nếu phân phối dữ liệu của bạn bị sai lệch nghiêm trọng hoặc không thể được tính toán chính xác (ví dụ:đối với các chỉ mục không gian hoặc toàn văn bản).
Bạn nên thu thập số liệu thống kê, xây dựng kế hoạch cho cả hai cách và hiểu ý nghĩa của những kế hoạch này.
Nếu bạn thấy rằng:
-
Kế hoạch được tạo tự động không phải là tối ưu và không thể được cải thiện bằng các cách tiêu chuẩn,
-
STRAIGHT_JOIN
phiên bản tốt hơn, bạn luôn hiểu nó và hiểu tại sao nó sẽ luôn luôn như vậy
, sau đó sử dụng STRAIGHT_JOIN
.