1、mysql不支持top,它是采用limit来实现这一功能的;
2、当sql语句中含有in、like、exists时索引不起作用,开始变为全表查询;
3、语句中的in和exists这样的条件能用子查询就用子查询,这样性能会提升不少,当然用关联查询更好;
4、当遇到union这样的联合查询时,要想提高性能,可以采用将每一个子查询单独开一个线程的方式来替代实现;
5、有时候将一个sql语句分拆成几个小sql,并建临时表,分步查询会对性能提升有很大帮助,最近这个项目在sql没有拆分之前耗时大于270秒,将其拆分几个子语句分步查询,并建立临时表后,耗时降到25秒左右;
6、建索引不是越多越好,但是到底看所建的索引有无用处,我们可以同explain sql语句来查看,当某字段建了索引后它的查询类型还是ALL,说明该索引无效。