美文网首页
2018-06-30-查询性能优化点总结

2018-06-30-查询性能优化点总结

作者: KillerManA | 来源:发表于2018-06-30 16:24 被阅读11次

1.善于使用expain

explain的使用清晰度展示了一些需要添加索引以及其它的一些性能信息,可以根据查看explain的结果对语句进行优化

2.切分查询

感觉计算机里面分而治之的思想无处不在,这里切分查询既是这个思想的一次展示,如果我们想删除一年的数据,如果一次性删除的话对数据库,会占用大量资源,可能造成阻塞,对正常的服务器运行产生波动影响,
策略:将一次性删除改为每次删除1-3万行数据(这里可根据自己的服务器性能进行变动,使用工具找到影响最小的),在每次删除后最好暂停一下,这样能将整个数据操作分散到更长的时间线中,对服务影响更小

3.特定类型优化查询

(1).count()简单优化

常见误解:count函数在MyISAM中非常快
答:只有在没有where条件的情况下才能非常快

select count(*) from world.city where id > 5;

通过explain可以看出这个sql语句在我的数据库中扫描了5000行左右代码,那么如何进行优化,可以倒过来查询啊

select (select count(*) from world.city) - count(*)  from world.city where id < 5

这样从小的开始排查大大减少了查询行数,是个不错的查询方式。

(2) group by优化

最好优化策略:
◆ GROUP BY 条件字段必须在同一个索引中最前面的连续位置;
◆在使用GROUP BY 的同时,只能使用 MAX 和 MIN 这两个聚合函数;
◆如果引用到了该索引中 GROUP BY 条件之外的字段条件的时候,必须以常量形式存在

(3) limit优化

limit 在数据量不大的情况下非常适合分页,再加上索引,相当方便,
但是在数据量便宜很大的情况下就不是很合适了,这里我们引入mysql的一种查询方法。
延迟查询:通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据。
再说白点就是先查主键,在关联到数据,来看例子:

select film_id, description from sakila.film order by title limit 50000, 5;

查询五万条之后的五条数据
优化:

select film.film_id, film.discription from sakila.film inner join (
    select film_id, description from sakila.film order by title limit 50000, 5
) as lim using(film_id);

这里我们通过子查询先查询了符合条件的id,然后在关联到表中,查询效率提升好几倍

-------------------------------------暂时到这里,后续对文章进行继续补充

相关文章

  • 2018-06-30-查询性能优化点总结

    1.善于使用expain explain的使用清晰度展示了一些需要添加索引以及其它的一些性能信息,可以根据查看ex...

  • 17.MySQL优化

    《高性能MySQL》——这本书都有的 “字段”优化总结 “索引”优化总结 索引的优化 “查询SQL”优化总结 “引...

  • 深入学习MySQL优化

    MySQL高性能优化实战总结 MySQL 的查询过程如下图,很多的查询优化工作实际上就是遵循一些原则。 优化的哲学...

  • iOS 性能优化总结

    iOS 性能优化总结 iOS 性能优化总结

  • IOS的性能优化包括哪几点

    iOS性能优化总结 iOS性能优化总结。关于 iOS 性能优化梳理: 基本工具、业务优化、内存优化、卡顿优化、布局...

  • App瘦身、性能优化总结

    App瘦身、性能优化总结 App瘦身、性能优化总结

  • 2022-11-05

    Android性能优化点全方面总结,收藏!!!

  • MySQL性能调优

    MYSQL查询语句优化 mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬...

  • Awesome Extra

    性能优化 性能优化模式 常见性能优化策略的总结 Spark 性能优化指南——基础篇 Spark 性能优化指南——高...

  • hive 查询性能优化总结

    一、join优化 ** Join查找操作的基本原则:** 应该将条目少的表/子查询放在 Join 操作符的左边。原...

网友评论

      本文标题:2018-06-30-查询性能优化点总结

      本文链接:https://www.haomeiwen.com/subject/cvmtuftx.html