日期:2014-05-17  浏览次数:20622 次

关于oracle索引的问题,谁答上有重赏!!!!!!!!!!
语句1:select   *   from   table   where   key   like   '%search% '

语句2:select   *   from   table   where   key   like   'search% '

执行语句1的时候是全字段搜索,而执行语句2的时候是按照索引key来搜索

哪位高手能告诉究竟是怎么回事?

怎么才能解决????????????


------解决方案--------------------
在Oracle中,当fld_name字段已被索引过,对like 'fld_value% '条件进行索引查询,
而对like '%fld_value% '进行全表扫描。其实这样的查询方案完成可以想像出来,对
like 'fld_value% '可以利用索引进行快速定位,而对like '%fld_value% '则只能通过
全表扫描来确定符合条件的数据。所以我们可以在基于Oracle索引规则的基础上进一步
理解这两种方式的查询计划为什么不同。
------解决方案--------------------
简单一点的说,翻字典,现在我知道我想查的汉字的声母,很容易就可以在目录部分找到该汉字的拼音,继而找到该汉字所在的页;如果我只知道汉字的拼音的一部分,就需要查询整个字典来查找;
索引的效果就如同字典的目录