广告
返回顶部
首页 > 资讯 > 数据库 >使用profile对Mysql调优的方法
  • 630
分享到

使用profile对Mysql调优的方法

2024-04-02 19:04:59 630人浏览 泡泡鱼
摘要

下文主要给大家带来使用profile对Mysql调优的方法,希望这些内容能够带给大家实际用处,这也是我编辑使用profile对mysql调优的方法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。&n

下文主要给大家带来使用profile对Mysql调优的方法,希望这些内容能够带给大家实际用处,这也是我编辑使用profile对mysql调优的方法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。                                                           

  1. 在我们做mysql性能分析的时候,最常用的有三种方式:

    (1)慢查询 (分析出现出问题的sql)
    (2)Explain (显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句)
    (3)Profile(查询到 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 Systemlock, Table lock 花多少时间等等.)

  2. 本章主要是对profile做简单的概述,用来对某一条sql语句进行性能分析。

  3. Profiling是从 mysql5.0.3版本以后才开放的。但是在mysql5.7之后,profile信息将逐渐被废弃,mysql推荐使用perfORMance schema。

  4. profile此工具可用来查询SQL执行状态,System lock和Table lock 花多少时间等等,对定位一条语句的I/O消耗和CPU消耗 非常重要。(SQL 语句执行所消耗的最大两部分资源就是io和CPU)

profile工具使用

  1. 查看自己的mysql版本:

    mysql> select version(); 
    +------------+
    | version()  |
    +------------+
    | 5.6.35-log |
    +------------+
  2. 查看是否开启profile功能(profiling=on代表开启):

    mysql> show variables like '%profil%';
    +------------------------+-------+
    | Variable_name          | Value |
    +------------------------+-------+
    | have_profiling        | YES  |
    | profiling              | OFF    |
    | profiling_history_size | 15    |
    +------------------------+-------+
  3. 开启profile:

    mysql> set profile=1;
  4. 开启profile之后,执行要分析的sql语句:

    mysql> select t1.*,t2.action from pre_forum_thread as t1
    left join 
    (select a.* from pre_forum_threadmod as a,(select tid,max(dateline) as dateline from pre_forum_threadmod group by tid) as b
    where a.tid=b.tid and a.dateline=b.dateline) as t2
    on t1.tid=t2.tid
    where t1.displayorder>=0 and t1.fid in (47,49) and t1.tid > 100318 
    and (t1.authorid =7683017 or t2.action<>'DWN' or t2.action is null )
    order by t1.dateline desc limit 20;
  5. 查看生成的profile信息:

    mysql> show profiles;
    +----------+------------+--------------------------------------------------------------------------------------------------------+
    | Query_ID | Duration  | Query                                                                                                  |
    +----------+------------+--------------------------------------------------------------------------------------------------------+
    |        1 | 1.37183777 | select t1.*,t2.action from pre_forum_thread as t1  |
    |        2 | 0.00078796 | show columns from `bbs`.`t2` |
    |        3 | 0.00150425 | show columns from `bbs`.`pre_forum_thread` |
    +----------+------------+--------------------------------------------------------------------------------------------------------+
  6. 获取指定的query语句的开销:

    mysql> show profile for query 2; 
    +----------------------+----------+
    | Status              | Duration |
    +----------------------+----------+
    | starting            | 0.000147 |
    | checking permissions | 0.000023 |
    | Opening tables      | 0.000047 |
    | init                | 0.000081 |
    | System lock          | 0.000031 |
    | optimizing          | 0.000034 |
    | statistics          | 0.001650 |
    | preparing            | 0.000046 |
    | executing            | 0.000018 |
    | Sending data        | 2.460588 |
    | end                  | 0.000041 |
    | query end            | 0.000019 |
    | closing tables      | 0.000022 |
    | freeing items        | 0.000055 |
    | cleaning up          | 0.000085 |
    +----------------------+----------+
  7. 关闭profile:

    mysql> set profiling=0;
  8. 相关具体的参数:

    type: 
       ALL                --显示所有的开销信息 
     | BLOCK IO          --显示块IO相关开销 
     | CONTEXT SWITCHES  --上下文切换相关开销 
     | CPU                --显示CPU相关开销信息 
     | IPC                --显示发送和接收相关开销信息 
     | MEMORY            --显示内存相关开销信息 
     | PAGE FAULTS        --显示页面错误相关开销信息 
     | SOURCE            --显示和Source_function,Source_file,Source_line相关的开销信息 
     | SWAPS              --显示交换次数相关开销的信息 
    
    例如,想要查看cpu和io开销可以执行命令:
    mysql> SHOW profile CPU,BLOCK IO  FOR query 2;

总结

  1. 一般简易的流程:

    (1)set profiling=1; //打开profile分析
    (2)run your sql1;
    (3)run your sql2;
    (4)show profiles;    //查看sql1,sql2的语句分析
    (5)SHOW profile CPU,BLOCK IO io FOR query 1; //查看CPU、IO消耗
    (6)set profiling=0; //关闭profile分析

对于以上关于使用profile对Mysql调优的方法,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的数据库,相信你会喜欢上这些内容的。


您可能感兴趣的文档:

--结束END--

本文标题: 使用profile对Mysql调优的方法

本文链接: https://www.lsjlt.com/news/34909.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用profile对Mysql调优的方法
    下文主要给大家带来使用profile对Mysql调优的方法,希望这些内容能够带给大家实际用处,这也是我编辑使用profile对Mysql调优的方法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。&n...
    99+
    2022-10-18
  • mysql的慢查询分析调优工具show profile怎么用
    这篇文章主要介绍了mysql的慢查询分析调优工具show profile怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。show pro...
    99+
    2022-10-18
  • 使用前缀索引对MySQL优化的方法
    下文给大家带来有关使用前缀索引对MySQL优化的方法内容,相信大家一定看过类似使用前缀索引对MySQL优化的方法的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完你一定会有所收获。1.查看表...
    99+
    2022-10-18
  • MySQL实现调优/优化的100个方法
    下文给大家带来关于MySQL实现调优/优化的100个方法,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL实现调优/优化的100个方法对大家多少有点帮助吧。MySQL是一个强大的开源数据库。随着MySQ...
    99+
    2022-10-18
  • Swoole和Workerman对PHP与MySQL的性能监控和调优方法
    引言:在高并发的网络编程中,PHP与MySQL的性能问题成为了开发人员的关注焦点。为了提高系统的响应速度和稳定性,需要对性能进行监控和调优。本文将介绍如何使用Swoole和Workerman两种常用的网络编程框架对PHP与MySQL进行性能...
    99+
    2023-10-21
    swoole 性能监控 Workerman
  • MySQL性能调优之查询优化的方法
    本篇内容介绍了“MySQL性能调优之查询优化的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、查询慢...
    99+
    2022-10-19
  • 使用MySQL的Explain执行计划的方法(SQL性能调优)
    目录前言1. explain的使用2. explain字段详解id列select_type列table列partitions列type列systemconsteq_refrefref...
    99+
    2022-11-13
    MySQL Explain执行计划 SQL性能调优
  • mysql性能调优的方法有哪些
    优化查询语句:使用合适的索引、避免使用全表扫描、避免使用不必要的子查询等。 优化数据模型:合理设计表结构,避免冗余字段和重复...
    99+
    2023-10-21
    mysql
  • mysql数据库引擎的调优方法
    本篇内容主要讲解“mysql数据库引擎的调优方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql数据库引擎的调优方法”吧!&bull; Opti...
    99+
    2022-10-18
  • mysql性能检查和调优的方法
    本篇内容主要讲解“mysql性能检查和调优的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql性能检查和调优的方法”吧! 我一直是使用mysql这个...
    99+
    2022-10-18
  • mysql now()函数调用系统时间不对的解决方法
    目录向数据库写记录最好用不用客户端时间mysql服务器时区不等于东八区的问题MySQL时区的设置和docker有关今天在MySQL的Now函数上踩了两个坑,花了不少时间。 向数据库写记录最好用不用客户端时间 第一个坑是客...
    99+
    2023-05-25
    MySQL now() MySQL now系统时间
  • Mysql性能有哪些调优与测试的方法
    本文主要给大家介绍Mysql性能有哪些调优与测试的方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下Mysql性能有哪些调优与测试的方法吧。一、关键...
    99+
    2022-10-18
  • 常用的MySQL 优化方法
    数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷。   本文我们来...
    99+
    2023-09-02
    mysql 数据库 sql
  • asp调用mysql数据库的方法
    小编给大家分享一下asp调用mysql数据库的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!asp调用mysql数据库的方法...
    99+
    2022-10-18
  • 干涉MySQL优化器使用hash join的方法
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是mysql的国产分支版本,使用上与MySQL一致。 前言 数据库的优化器相当于人类的大脑,大部分时候都能做出正确的决策,制定正...
    99+
    2022-09-13
  • mysql优化通常使用的方法有哪些
    这期内容当中小编将会给大家带来有关mysql优化通常使用的方法有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。分享一下常见的几种MySQL数据优化方式。。。。。。。选...
    99+
    2022-10-18
  • 干涉MySQL优化器使用hash join的方法
    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 前言 数据库的优化器相当于人类的大脑...
    99+
    2022-11-13
  • 使用Limit参数优化MySQL查询的方法
    要优化MySQL查询,可以使用LIMIT参数来限制返回的结果集的大小,以减少查询的时间和资源消耗。以下是一些使用LIMIT参数优化MySQL查询的方法:1. 限制返回的结果行数:使用LIMIT语句来限制返回的结果行数,可以减少查询的时间...
    99+
    2023-08-11
    Limit
  • 使用Firebug对js进行断点调试的图文方法
    具体步骤: a. 打开Firebug后,启用“脚本”调试,找到引用的脚本文件(或者行内js); b. 在适当的位置加入断点; c. 如果断点已经执行过,则刷新页面,这时脚本就...
    99+
    2022-11-21
    Firebug js 断点调试
  • Linux中常用的调优方法有哪些
    这篇文章主要介绍了Linux中常用的调优方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux中常用的调优方法有哪些文章都会有所收获,下面我们一起来看看吧。关闭selinux功能selinux是美国...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作