Mọi người cho mình hỏi khi truy vấn SQL, mình có 2 điều kiện where, 1 trong 2 điều kiện ấy là column có index. Vậy khi đặt thứ tự điều kiện where trong câu lệnh SQL mình nên đặt điều kiện có index ở trước thì sẽ tối ưu hơn phải không?
SQL: Để index có hiệu quả
Không cần thiết, query op sẽ tự chọn index phù hợp (vẫn có thể ép chọn index
)
Thứ tự rất quan trọng khi đánh index phức, cột nào tìm kiếm nhiều nhất thì đặt trước.
Tức là ntn: Với index phức a_b(R): (a, b) thì where R.a = ? và where R.a = ? and R.b = ? có thể sử dụng index a_b, còn where R.b = ? thì không, trừ mỗi Oracle skip được.
1 Like
Cột nào mà ít thay đổi data thì mới nên đấnh index bạn nhé
1 Like
Không có gì chắc chắc cả, bv khi bạn nối 2 điều kiện lại với nhau bằng AND hoặc OR nó cũng không xữ lý giống nhau.
Tốt nhất là viết câu 2 queries, lấy execution plan, xong kiểm tra xem câu nào có dùng index, câu nào ko. Nếu 2 câu đều ra execution plan y chang nhau thì coi như ko còn gì để bàn.
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?