01、对查询进行优化,要尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引。
02、避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描。
03、避免在where子句中使用or来连接条件,如果一个字段有索引,一个字段没有索引,会进行全表扫描。可用union all查询代替。
04、in查询和not in查询也要慎用,否则会导致全表扫描。可以考虑用between and查询或者exist查询代替。
05、模糊查询以%开头也可以导致全表查询。
06、where子句中使用参数操作,表达式操作,函数运算,算术运算,也会导致全表扫描。
07、如果是复合索引,必须使用该索引的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用。
08、多张大数据量的表JOIN,要先分页再JOIN,否则逻辑读会很高,性能很差。
09、尽量使用数字型字段。若只含数值信息的字段尽量不要设计为字符型,这会提升查询和连接的性能,并降低存储开销。