首页 > 数据库技术 > 详细

MySQL查询优化

时间:2020-03-11 00:19:40      阅读:55      评论:0      收藏:0      [点我收藏+]

1、关联查询优化

   select * from A(驱动表) join B(被驱动表)on A.id = B.id;

  • 保证被驱动表的join字段已经被索引(即建立了外键关系);

  • left join时,选择小表作为驱动表,大表作为被驱动表;

  • inner join 时,mysql会自动帮你把小结果集的表选为驱动表;但是有时候不理想,可以使用STRAIGHT_JOIN 替代inner join,明确指定驱动表和被驱动表;

  • 子查询尽量不要放在被驱动表,有可能使用不到索引;

  • 能够直接多表关联的尽量直接关联,不用子查询;

2、子查询优化

  • 尽量不要使用not in 或者not exists;用left outer join on xxx is null代替;

3、排序、分组优化

  • 避免无过滤条件排序,分页也算过滤条件;

  • 避免顺序错(有索引的字段放前面,组合索引最左前缀原理)排序、分组;

  • 避免多字段排序方向不同,如order by a asc,b desc;

4、覆盖索引

  • select具体字段不要select *,这样用不上索引的情况时可以用覆盖索引;

MySQL查询优化

原文:https://www.cnblogs.com/xp2h/p/12459335.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!