zoukankan      html  css  js  c++  java
  • Mysql优化之优化工具profiling

    Mysql优化之优化工具profiling

    前言

    mysql优化技术:

    mysql优化不是做一个操作就可以的优化,它包含很多的细节,需要一点一点的优化,最后这个性能提升会很高 .

    引申

    假设有这样的需求:

    网站现在很慢 ? 项目里面有很多的sql ,众多的sql里面找到性能很差的sql呢?

    什么是慢查询: 性能低效的sql

    先来看一下这个东西, show variables like "%slow%"; # 查看慢查询的一些东西

    Mysql优化之优化工具profiling

    注:慢查询低效的sql会被记录在 slow_query_log_file

    并且允许我们更改此文件的位置

    eg: set global slow_query_log_file = "d:/slow.log";

    接下来什么又称作性能低效的sql呢:

    就是你的sql执行的时间超过你无法忍受的时间

    如何查看默认的无法忍受的时间:

    eg: show variables like "long_query_time"; #默认是10秒

    因此,假设我们无法忍受的时间 设置为 1秒

    set long_query_time = 1;

    则执行时间超过1秒的sql都会被记录到d:/slow.log文件中,让后进行分析与优化。

    性能优化的工具

    当我们已经找到了一些慢查询之后,就需要我们借助一些工具来分析,也就是本次要用到的profiling

    如果记不太清了,可以执行下面sql找一下

    eg: show variables like "%pro%";

    Mysql优化之优化工具profiling

    会看到这么一条数据:profiling | OFF

    首先,需要开启这个优化工具:

    set profiling = 1;

    然后,开始分析sql:show profiles;

    Mysql优化之优化工具profiling

    会查到三列数据:Query_ID 查询编号,Duration 执行时间 Query 查询的sql语句

    我们发现Duration的时间精度更细,这能方便我们更细的观察优化的效果。

    我们还可以查询某一条,更细的执行情况

    eg: show profile for query 4;

    Mysql优化之优化工具profiling

    这能让我们更加深入的了解sql各个过程执行的时间,来检验我们做的sql语句优化的提升效果。

    最后,题外话

    为了让我们的分析结果更准确,还应该熟练使用 reset query cache; #清除sql缓存,来得到一个客观数据结果。

    希望对一起学习的朋友有一丝启迪,带来一些帮助 ^-^

  • 相关阅读:
    【Solr】copy字段的应用
    【Solr】Solr的安装部署
    【UEditor】 UEditor整合项目上传资源到阿里云服务器
    【Bootstrap】Bootstrap和Java分页-第二篇
    【Bootstrap】Bootstrap和Java分页-第一篇
    工作那点小事
    ubuntu安装mongodb
    mybatis插入返回主键
    linux查看端口占用命令
    ubuntu安装ssh
  • 原文地址:https://www.cnblogs.com/jpfss/p/9174084.html
Copyright © 2011-2022 走看看