• 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缓存,来得到一个客观数据结果。

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

  • 相关阅读:
    LeetCode Missing Number (简单题)
    LeetCode Valid Anagram (简单题)
    LeetCode Single Number III (xor)
    LeetCode Best Time to Buy and Sell Stock II (简单题)
    LeetCode Move Zeroes (简单题)
    LeetCode Add Digits (规律题)
    DependencyProperty深入浅出
    SQL Server存储机制二
    WPF自定义RoutedEvent事件示例代码
    ViewModel命令ICommand对象定义
  • 原文地址:https://www.cnblogs.com/jpfss/p/9174084.html
Copyright © 2020-2023  润新知