1 优化insert
多条记录插入推荐: insert into test values (1,2),(1,3),(1,4)
2 优化group by
默认情况小,mysql 排序所有 group by col1,col2 .......。查询方法如同在查询中指定 order by col1,col2 .....。
如果你想要避免排序结果的消耗,你可以指定 order by null.
3 优化order by
某些情况下可以使用一个索引来 满足 order by 子句,而不需要额外排序。
where 条件和order by 使用相同索引, 并且order by 顺序和索引顺序相同,并且order by的字段都是升序或者降序。
以下情况不使用索引(待具体量级验证)
select * from test order by col1 asc, col2 desc; -- order by 子句 混合 asc,desc
select * from test where col1='zhangsan' order by col2 desc; --where 条件的列,与order by 列 不同
4 优化 join 语句
join on 条件字段加索引
用join 代替 子查询
连接(JOIN).. 之所以更有效率一些,是因为 MySQL不需要在内存中创建临时表来完 成这个逻辑上的需要两个步骤的查询工作
5 优化or 条件
对于or子句,如果要利用索引,则or之间的每个条件列都必须用到索引;如果没有索引,则应该考虑增加索。