由SQL编写导致的慢SQL,优化起来还是相对比较方便的。正如上一届提到的正确的使用索引能加快查询速度,那么我们在编写SQL时就需要注意与索引相关的规则:
1.字段类型转换导致不用索引,如字符串类型的不用引号,数字类型的用引号等,这都有可能会用不到索引导致全表扫描;
2.mysql不支持函数转换,所以字段前面不能加函数,否则将用不到索引;
3.不要在字段前面加减运算;
4.字符串比较长的可以考虑索引一部分减少索引文件大小,提高写入效率;
5.like%前面用不到索引;
6.根据联合索引的第二个及以后的字段单独查询用不到索引;
7.不要使用select*;
8.排序请尽量使用升序;
9.or的查询尽量用union代替;
10.复合索引高选择性的字段排在前面;
11.order by /group by 字段包括在索引当中减少排序,效率会更高。
除了上述索引使用规则外,sql编写时还需要特别注意一下几点:
1.尽量规避大事务的SQL,大事务的SQL会影响数据库的并发性能及主从同步;
2.分页语句limit的问题;
3.删除表所有记录用truncate,不要用delete;
4.不让mysql干多余的事情,如计算;