索引无效

1、WHERE字句的查询条件里有不等于号(WHERE column!=...),MYSQL将无法使用索引


2、类似地,如果WHERE字句的查询条件里使用了函数(如:WHERE DAY(column)=...),MYSQL将无法使用索引


4、如果WHERE子句的查询条件里使用了比较操作符LIKE和REGEXP,MYSQL只有在搜索模板的第一个字符不是通配符的情况下才能使用索引。比如说,如果查询条件是LIKE 'abc%',MYSQL将使用索引;如果条件是LIKE '%abc',MYSQL将不使用索引。


7、索引有用的情况下就太多了。基本只要建立了索引,除了上面提到的索引不会使用的情况下之外,其他情况只要是使用在WHERE条件里,ORDER BY 字段,联表字段,一般都是有效的。

 

如何屏蔽索引
  
  语句的执行计划中有不良索引时,可以人为地屏蔽该索引,方法:
  
  。数值型:在索引字段上加0,例如
  select * from emp where emp_no+0 = v_emp_no;
  
  。字符型:在索引字段上加‘’,例如
  select * from tg_cdr01 where msisdn||’’=v_msisdn;

 


奇怪:

select * from t_resource  where id > 1467;ok
select * from t_resource  where id > 0;--索引无效

 

没看明白楼主想表达什么