首页 > 数据库技术 > 详细

mysql查询优化方案

时间:2020-05-09 21:17:19      阅读:48      评论:0      收藏:0      [点我收藏+]

mysql查询优化方案

  • 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引
  • in ,not in会全表扫描
  • 模糊查询也会全表扫描:select id from t where name like ‘%abc%‘
  • 并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引

limit结合order by查询优化

  • 慢查询示例
select * from table where deleted_at = ? and owner_id = ? order by status, id desc limit ?
  • 优化查询示例
select * from table no1 join(select id from table where deleted_at = ? and owner_id = ? order by status, id desc )  no2 on no1.id=no2.id limit ?;
  • 对比分析

使用上面这种写法的原因:原始的“select * from table where deleted_at = ? and owner_id = ? order by status, id desc limit ?” 会先读索引,再读数据,然后抛弃不需要的数据;而第二种写法只读索引,使用了主键索引,然后根据索引读取需要的列,效率更高

mysql查询优化方案

原文:https://www.cnblogs.com/javallh/p/12859627.html

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