关于oracle的索引问题,请问一下这段话的意思是什么,为什么不能使用索引?

有时候我们会使用多个字段的组合索引。如果查询条件的第一个字段不能使用索引,那么整个查询也不能使用索引。例如:我们为company表建了一个id+name的组合索引,以下SQL是不能使用索引的:
select * from company where name=?
最新回答
尛臉狠謎人,

2026-04-03 18:09:30

SQL什么条件不会使用索引?

1、不等于操作不能使用索引

2、经过普通运算或函数运算后的索引字段不能使用索引,但是经过函数运算字段的字段要使用可以使用函数索引

  • 3、使用多个字段的组合索引,如果查询条件中第一个字段不能使用索引,那整个查询也不能使用索引

4、含前导模糊查询的Like语法不能使用索引

5、B-TREE索引里不保存字段为NULL值记录,因此IS NULL不能使用索引。

6、Oracle在做数值比较时需要将两边的数据转换成同一种数据类型,如果两边数据类型不同时会对字段值隐式转换,相当于加了一层函数处理,所以不能使用索引。

7、给索引查询的值应是已知数据,不能是未知字段值。
自古女子多痴情深

2026-03-16 18:06:03

这个很好理解啊.索引的建立在多个字段的组合上,那么你查找的时候也要按照这些个字段进行查找才能使用索引.就比如书籍的目录,你只看标题的一半,那你只能全文浏览才能找到所需的内容.
手指的烟

2026-03-19 21:59:52

把创建组合索引的顺序颠倒一下就可以使用了··· name+id
姐,只会喝醋╯

2026-05-25 11:46:19

索引的使用遵循最左字段原则。。
他说那很美い

2026-05-19 16:25:19

单独使用 name 是不能用索引的,得 id 和 name 联合用,再看看你的id 和name 是什么类型,类型貌似得匹配。