一、从where条件优化入手
1、where 中尽量避免以下操作,否则将引擎放弃使用索引而进行全表扫描。
!=, <>, is null, or, like ‘%abc%’, in, not in, 对字段进行表达式、函数或其他运算操作操作,如(num/2=100,substring(name,1,3)=’abc’),
2、应尽量在where条件中存在以下操作
2.1、首先应考虑在 where 及 order by 涉及的列上建立索引。
2.2、在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使 用,并且应尽可能的让字段顺序与索引顺序相一致。
二、从索引优化入手
1、并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引。
三、其他查询优化:
1、任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。