Nó phụ thuộc ...
Rất khó xảy ra trường hợp chỉ mục chỉ trên column1
sẽ có lợi nếu bạn đã có chỉ mục tổng hợp trên column1, column2
. Kể từ column1
là chỉ mục hàng đầu, các truy vấn đối với bảng chỉ có column1
như một vị từ sẽ có thể sử dụng chỉ mục tổng hợp. Nếu bạn thường xuyên chạy các truy vấn cần quét toàn bộ chỉ mục và sự hiện diện của column2
về cơ bản làm tăng kích thước của chỉ mục, có thể chỉ mục trên column1
sẽ hiệu quả hơn vì quá trình quét chỉ mục đầy đủ sẽ cần thực hiện ít I / O hơn. Nhưng đó là một tình huống khá bất thường.
Chỉ mục trên column2
có thể có lợi nếu một số truy vấn của bạn đối với bảng chỉ định các vị từ chỉ trên column2
. Nếu có tương đối ít giá trị khác biệt của column1
, có thể Oracle có thể thực hiện quét bỏ qua chỉ mục bằng cách sử dụng chỉ mục tổng hợp để đáp ứng các truy vấn chỉ xác định column2
làm vị ngữ. Nhưng quét bỏ qua có thể kém hiệu quả hơn nhiều so với quét phạm vi, vì vậy có khả năng hợp lý là một chỉ mục chỉ trên column2
sẽ có lợi cho những truy vấn đó. Nếu có một số lượng lớn các giá trị riêng biệt cho column1
, quá trình quét bỏ qua sẽ thậm chí còn kém hiệu quả hơn và chỉ mục trên column2
sẽ có lợi hơn. Tất nhiên, nếu bạn không bao giờ truy vấn bảng bằng column2
mà không chỉ định một vị từ trên column1
, bạn sẽ không cần chỉ mục chỉ trên column2
.