查询数据时发现查询时间很长,就需要优化sql了,先查看sql 执行计划,根据sql执行计划进行优化。
1、索引的建立,防止索引失效
具体可以百度!
特别说一点:不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引
2、分页查询效率
select * from t_user where age >18 order by age desc limit 1000,10;
如果t_user 表数据量过大,就算只查询10条也很慢,可以将上一条查询结果中的id 当成条件传送过来,如:
select * from t_user where age >18 and id>#{id} order by age desc limit 1000,10;
3、in 的使用
数据量如果大,将in 用exists 替换!
4、尽量用join 替换子查询
5、最左原则
先了解sql 执行顺序,比如一个sql有5步,尽量在第一步范围过滤的时候将范围最小化。
待续......