BETWEEN nên vượt trội hơn IN trong trường hợp này (nhưng làm đo lường và kiểm tra các kế hoạch thực thi!), đặc biệt là n ngày càng tăng và khi số liệu thống kê vẫn chính xác. Giả sử:
-
mlà kích thước của bàn của bạn -
nlà kích thước trong phạm vi của bạn
Chỉ mục có thể được sử dụng (n nhỏ so với m )
-
Về lý thuyết,
BETWEENcó thể được triển khai bằng một lần "quét phạm vi" (Oracle speak) trên chỉ mục khóa chính và sau đó duyệt qua nhiều nhấtncác nút lá chỉ mục. Độ phức tạp sẽ làO(n + log m) -
INthường được triển khai dưới dạng một chuỗi (vòng lặp)n"quét phạm vi" trên chỉ mục khóa chính. Vớimlà kích thước của bảng, độ phức tạp sẽ luôn làO(n * log m)... điều này luôn tệ hơn (không di động đối với các bảng rất nhỏmhoặc phạm vi rất nhỏn)
Không thể sử dụng chỉ mục (n là một phần quan trọng của m )
Trong mọi trường hợp, bạn sẽ quét toàn bộ bảng và đánh giá vị từ trên mỗi hàng:
-
BETWEENcần đánh giá hai vị từ:Một cho giới hạn dưới và một cho giới hạn trên. Độ phức tạp làO(m) -
INcần đánh giá nhiều nhấtncác vị ngữ. Độ phức tạp làO(m * n)... một lần nữa luôn tệ hơn, hoặc có lẽO(m)nếu cơ sở dữ liệu có thể tối ưu hóaINdanh sách là một bản đồ băm, thay vì một danh sách các vị từ.