mysql 查询优化规则
1、请不要在SELECT中使用DISTINCT; #会用到临时表
2、尽可能不要SELECT *,而应该查询需要用到的指定几个字段;
3、不要对两个大表进行联合,无论是内联或外联。对于需要对两个或多个表进行联合查询的情况,可以做两次或多次数据库查询;
4、在WHERE条件中,尽可能对同类型的数据列进行比较;
5、在WHERE条件中,尽量让有索引的数据列在比较表达始中单独出现;
6、在WHERE条件中,根据数据列排除不合条件数据量由多到少的次序排列条件,在不能确定排除数据多少的前提下,一般来说表达式中使用=、!=、<>要优先于>、<、>=、<=,更优先于LIKE;
如果WHERE条件中的值是数字,那么不要使用单引号进行类型转换;如果WHERE条件中使用LIKE模式匹配,不要在模式开头使用通配符%;
7、不要对WHERE条件中的非BINARY属性的CHAR/VARCHAR字段,进行大小写转换;
8、尽可能不要在SELECT中使用GROUP BY,如果确实有必要,请与主管联系确认;