Đây có thể là một câu hỏi ngớ ngẩn, nhưng nó có thể làm sáng tỏ cách thức hoạt động của nội bộ.Tăng tốc độ tham gia bên trong giữa một bảng lớn và một bảng nhỏ
Giả sử tôi có một bảng lớn L
và một bảng nhỏ S
(100 nghìn hàng so với 100 hàng).
Nên có bất kỳ sự khác biệt về tốc độ giữa hai tùy chọn sau đây ?:
OPTION 1: OPTION 2:
--------- ---------
SELECT * SELECT *
FROM L INNER JOIN S FROM S INNER JOIN L
ON L.id = S.id; ON L.id = S.id;
Chú ý rằng sự khác biệt duy nhất là thứ tự mà các bảng với nhau.
Tôi nhận thấy hiệu suất có thể khác nhau giữa các ngôn ngữ SQL khác nhau. Nếu vậy, MySQL sẽ so sánh với Access như thế nào?
Vì vậy, vì cả hai bảng đều có chỉ mục duy nhất, hiệu suất sẽ thay đổi theo từng trường hợp? – Zaid
@Zaid: nếu số liệu thống kê được cập nhật (và truy vấn được biên dịch lại như đã nêu ở trên) thì thứ tự của phép nối sẽ không thành vấn đề; trình tối ưu hóa sẽ chọn đúng cách. –
Có, có lẽ tôi nên bao gồm nhiều tham gia lồng nhau trong OP ... – Zaid