创建一个表tablename 有两个字段 A ,B 在这两个字段上分别创建索引 INDEX_A , INDEX_B ,那么我在查询select * from tablename where A=value and B= value 1、这样的where 子句能用到A 和 B 的索引吗?我觉得应该是能用到A 的索引但用不到B 的索引?
2、如果有这样的查询是不是最好创建一个 联合索引 好一点?
2、如果有这样的查询是不是最好创建一个 联合索引 好一点?
但,楼主你可以强制oracle选择你希望其执行的索引;
select /*+ index(a index_b) */ from tablename where a=value and b=value;
2, 当然,如果能创建一个联合索引的话,并且你使用了选择性较好的列作为前导列,那么联合索引应该会有更好的执行效率。相反,你如果选择了选择性较差的列作为了前导列,其效率可能还不如单个列的索引。