之前看过无数的文章说 name like '%条件%' ,将进行一次全表扫描,即使查询的字段name上建了索引也是没用的,但是今天我不经意间给name建了一个索引,结果name like '%条件%'的查询速度快了不少

解决方案 »

  1.   

    lzoracle采用什么样的执行计划,是oracle自行选定的,除非你用hint指定,否则,目前的执行计划可能随着你的数据量的变化而变化。比如,你现在用like 可以使用索引,但是一旦数据量到了一定的量后,oracle就不会选择索引了。
    所以,真正sql是如何执行,完全是oracle自己选择的,它会选择它认为是最省cost的执行计划的
      

  2.   

    我只是非常奇怪,   为什么   name like '%条件%' 这个查询会用到索引???
    我一直以为 只有当进行类似  name like '条件%'  的时候是可以用到索引的.而进行name like '%条件%'查询的时候是无法利用索引来提高查询速度的...