`
zhangjijun
  • 浏览: 33623 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

mysql:show profile分析一个SQL执行慢的具体原因

 
阅读更多

在做数据库优化的过程中可以通过explain来查看查询有没有走索引,但是

mysql从5.0.37版本开始增加了对show profiles和show profile 语句的支持,通过

have_profiling参数,能够看到当前mysql是否支持profile;

mysql> select @@have_profiling;

+-------------------------------+

|@@have_profiling |

+-------------------------------+

| YES |

+-------------------------------+

1 row in set (0.00 sec)

默认profiling是关闭的,可以通过set语句在session级别开启profiling:

mysql> select @@profiling;

+-------------------------------+

| @@profiling |

+-------------------------------+

| 0 |

+------------------------------+

1 row in set (0.00 sec)

mysql> set profiling=1;

query ok ,0 rows affected(0.00 sec)

通过 profile,我们能够更清楚地了解sql执行的过程,例如,我们知道myisam表有表元数据的缓

存(例如行数,即count(*)值),那么对一个myisam表的count(*)是不需要消耗太多资源的,而对于

innodb来说,就没有这种元数据缓存,count(*) 执行地较慢,下面做个实验验证一下。

首先,在一个innodb引擎的付款表payment上,执行一个count(*)查询:

mysql> select count(*) from payment;

+------------------------------+

| count(*) |

+------------------------------+

| 16049 |

+------------------------------+

1 row in set (0.00 sec)

执行完毕后,通过show profiles语句,看到当前sql的queryID为4:

mysql>show profiles;

mysql:show profile分析一个SQL执行慢的具体原因

 

通过 show profile for query语句能够看到执行过程中线程的每个状态和消耗的时间:

mysql:show profile分析一个SQL执行慢的具体原因

 

show profile cpu for query 4;

——————————————————————————————————————

innodb_buffer_pool_size的参数设置详见:

https://blog.csdn.net/sunny05296/article/details/78916775

-- innodb_buffer_pool_size=128M  

分享到:
评论

相关推荐

    MySQL优化篇:show profile进行SQL分析

    文章目录1、SQL分析、调优和排查的大体流程2、show profile是什么3、show profile分析步骤(1)是否支持,看看当前的MySQL版本是否支持(2)开启功能,默认是关闭,使用前需要开启(3)运行SQL(4)查看结果,show ...

    Mysql利用profiles来查看SQL语句执行计划.rar

    要使用该功能,mysql的版本必须在5.0.37版本以上。否则只能使用explain 的方式来检查。 profiling 功能可以了解到cpu io 等更详细的信息。 show profile 的格式如下: SHOW PROFILE [type [, type] ... ] [FOR ...

    MySQL利用profile分析慢sql详解(group left join效率高于子查询)

    最近遇到一个查询比较慢的sql语句,用了子查询,大概需要0.8秒左右,这个消耗时间比较长,严重影响了性能,所以需要进行优化。单独查询单表或者子查询记录都很快,下面来看看详细的介绍。 开启profile mysql> show...

    MySQL性能分析工具profile使用教程

    分析SQL执行带来的开销是优化SQL的重要手段。在MySQL数据库中,可以通过...本文描述了如何使用MySQL profile,不涉及具体的样例分析。 1、有关profile的描述 代码如下: –当前版本  root@localhost[sakila]> show v

    mysql高级视频教程百度云(2019).txt

    51.MySQL高级_用Show Profile进行sql分析.avi 50.MySQL高级_批量插入数据脚本.avi 49.MySQL高级_慢查询日志.avi 48.MySQL高级_为排序使用索引OrderBy优化.avi 47.MySQL高级_in和exists.avi 46.MySQL高级_...

    尚硅谷Java视频教程_MySQL高级视频

    尚硅谷_MySQL高级_用Show Profile进行sql分析 · 52.尚硅谷_MySQL高级_全局查询日志 · 53.尚硅谷_MySQL高级_数据库锁理论概述 · 54.尚硅谷_MySQL高级_读锁案例讲解 · 55.尚硅谷_MySQL高级_读锁案例讲解2 · ...

    2021年MySQL高级教程视频.rar

    ├第一天视频,网盘文件,永久连接 01.MySQL高级课程内容介绍.mp4 02.MySQL高级Linux上安装MySQL.avi 03.MySQL高级启动及登录...16.MySQL高级优化SQL步骤showprofile.avi 17.MySQL高级优化SQL步骤trace工具.avi 18. .....

    mysql lunix的安装

    这个是MySQL5.5再contos6下的安装方法 MySQL 是...索引的优化策略,了解innodb和myisam存储引擎,熟悉MySQL锁机制,能熟练配置MySQL主从复制,熟练掌握explain、show profile、慢查询日志等日常SQL诊断和性能分析策略。

    Mysql自带profiling性能分析工具使用分享

    3. 执行SQL查询  例:select goods_name from ecs_goods where goods_id <5000;   show profiles;   4. show profile for query 4;   show profile 的格式如下: SHOW PROFILE [type [, type] … ]  [FOR ...

    2018最新Mysql高级视频教程

    MySQL是目前流行的关系型数据库管理系统,在WEB...索引的优化策略,了解innodb和myisam存储引擎,熟悉MySQL锁机制,能熟练配置MySQL主从复制,熟练掌握explain、show profile、慢查询日志等日常SQL诊断和性能分析策略。

    MySQL中使用SHOW PROFILE命令分析性能的用法整理

    show profile是由Jeremy Cole捐献给MySQL社区版本的。默认的是关闭的,但是会话级别可以开启这个功能。开启它可以让MySQL收集在执行语句的时候所使用的资源。为了统计报表,把profiling设为1   mysql> SET ...

    04尚硅谷_MySQL高级_BD版.docx

    MySQL是目前流行的关系型数据库管理系统,在WEB...索引的优化策略,了解innodb和myisam存储引擎,熟悉MySQL锁机制,能熟练配置MySQL主从复制,熟练掌握explain、show profile、慢查询日志等日常SQL诊断和性能分析策略。

    查看mysql语句运行时间的2种方法

    网站运行很慢的时候,我就特别起知道为什么这么慢,所以我查啊查,数据库绝对是很重要的一部分,里面运行的sql是绝对不能放过的。平时做项目的时候,我也会注意sql语句的书写,写出一些高效的sql来,所以我会经常测试...

    通俗易懂的MySQL高级教程(含配套资料)

    本教程为授权出品 MySQL是目前流行的关系型...索引的优化策略,了解innodb和myisam存储引擎,熟悉MySQL锁机制,能熟练配置MySQL主从复制,熟练掌握explain、show profile、慢查询日志等日常SQL诊断和性能分析策略。

    MySQL使用profile查询性能的操作教程

    mysql> show variables like '%profil%'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | profiling | OFF | --开启SQL语句剖析功能 | profiling_history_...

    数据库管理系统检查命令清单.docx

    数据库检查时主要使用select只读查看命令,主要查看用户情况、安全策略配置文件、日志等(连接数据库:mysql –uusername –ppassword show databases;use mysql;) cat my.ini select user(); select host,user,...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。这是个小型的系统,从投入的人力,财力与物力来讲是非常小的,发布出去之需要...

    java8集合源码分析-pangdan:面试相关技能

    java8 集合源码分析 pangdan 算法和数据结构 数组、链表、二叉树、队列、栈的各种操作...优化(explain,慢查询,show profile) 数据库的范式。 分库分表,主从复制,读写分离。 Nosql相关(redis和memcached区别之

    docker-percona-toolkit:Docker Percona工具包存储库

    pt-ioprofile 点杀 pt-mext pt-mongodb-query-digest pt-mongodb-summary pt-mysql-summary pt在线模式更改 pt-pmp pt-query-digest pt-show-grants pt-sift pt-slave-delay pt从属查找 pt-slave-restart...

Global site tag (gtag.js) - Google Analytics