MySQL中如何使用profile分析SQL执行状态

操作方法

  • 01

    打开profile mysql> select @@have_profiling; +------------------+ | @@have_profiling | +------------------+ | YES              | +------------------+ 1 row in set (0.00 sec) mysql> select @@profiling; +-------------+ | @@profiling | +-------------+ |           0 | +-------------+ 1 row in set (0.00 sec) mysql> set session profiling=1; Query OK, 0 rows affected (0.00 sec) mysql> select @@profiling; +-------------+ | @@profiling | +-------------+ |           1 | +-------------+ 1 row in set (0.00 sec) 使用profile分析SQL,可以看到执行两次后,Send data和sending cached result to clien执行效率的变化 mysql> select count(*) from sakila.payment; +----------+ | count(*) | +----------+ |    16049 | +----------+ 1 row in set (0.03 sec) mysql> show profiles; +----------+------------+-------------------------------------+ | Query_ID | Duration   | Query                               | +----------+------------+-------------------------------------+ |        1 | 0.00020400 | select @@profiling                  | |        2 | 0.00008900 | select count(*) from payment        | |        3 | 0.00006800 | show databaes                       | |        4 | 0.02102800 | show databases                      | |        5 | 0.02847600 | select count(*) from sakila.payment | 本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/ +----------+------------+-------------------------------------+ 5 rows in set (0.00 sec) mysql> show profile for query 5; +--------------------------------+----------+ | Status                         | Duration | +--------------------------------+----------+ | starting                       | 0.000030 | | Waiting for query cache lock   | 0.000005 | | checking query cache for query | 0.000043 | | checking permissions           | 0.000007 | | Opening tables                 | 0.000027 | | System lock                    | 0.000010 | | Waiting for query cache lock   | 0.000010 | | init                           | 0.000000 | | optimizing                     | 0.023255 | | statistics                     | 0.000118 | | preparing                      | 0.000041 | | executing                      | 0.000033 | | Sending data                   | 0.003833 | | end                            | 0.000054 | | query end                      | 0.000045 | | closing tables                 | 0.000045 | | freeing items                  | 0.000072 | | Waiting for query cache lock   | 0.000033 | | freeing items                  | 0.000785 | | Waiting for query cache lock   | 0.000016 | | freeing items                  | 0.000002 | | storing result in query cache  | 0.000005 | | logging slow query             | 0.000003 | | cleaning up                    | 0.000004 | +--------------------------------+----------+ 24 rows in set (0.00 sec) mysql> select count(*) from sakila.payment; +----------+ | count(*) | +----------+ |    16049 | +----------+ 1 row in set (0.00 sec) mysql> show profiles; +----------+------------+-------------------------------------+ | Query_ID | Duration   | Query                               | +----------+------------+-------------------------------------+ |        1 | 0.00020400 | select @@profiling                  | |        2 | 0.00008900 | select count(*) from payment        | |        3 | 0.00006800 | show databaes                       | |        4 | 0.02102800 | show databases                      | |        5 | 0.02847600 | select count(*) from sakila.payment | |        6 | 0.00006900 | select count(*) from sakila.payment | +----------+------------+-------------------------------------+ 6 rows in set (0.00 sec) mysql> show profile for query 6; +--------------------------------+----------+ | Status                         | Duration | +--------------------------------+----------+ | starting                       | 0.000029 | | Waiting for query cache lock   | 0.000004 | | checking query cache for query | 0.000007 | | checking privileges on cached  | 0.000004 | | checking permissions           | 0.000008 | | sending cached result to clien | 0.000012 | | logging slow query             | 0.000002 | | cleaning up                    | 0.000003 | +--------------------------------+----------+ 8 rows in set (0.00 sec)

(0)

相关推荐

  • mysql中的怎样使用sql创建多字段的主键的表

    mysql中怎样创建多字段主键的表? 有时候一张表要有多个主键,因为外键必须依赖主表的主键的 而且外键可以为空的: mysql中创建多个字段主键的表的实例: create table student( ...

  • mysql中null与“空值”的坑

    数据库在企业环境中是非常常用的,不仅仅是DBA,运维人员和开发人员都要熟悉数据库的使用,增删改查等操作.而对于使用数据库的人员来说,对于字段.属性的熟悉是相当重要的.今天就给大家分享下mysql下面的 ...

  • MySql中启用InnoDB数据引擎的方法

    MySql中启用InnoDB数据引擎的方法

  • 如何打开iPhone11苹果手机中的共享iCloud分析功能

    iPhone11苹果手机被很多人使用,用来玩游戏,与好友联系等,有的用户在使用该手机时,想要打开共享iCloud分析功能,但是却不知道如何打开,那么小编就来为大家介绍一下吧.具体如下:1.第一步,点击 ...

  • 在mysql中新建数据库并且设置编码格式

    mysql中新建数据库及设置编码格式的方式很多,这里介绍一下在windows下设置的方式. 操作方法 01 首先需要安装操作mysql的一款工具软件,Navicat Lite for MySQL,可以 ...

  • mysql中怎么查看表结构

    这篇主要向大家介绍了Mysql中怎么查看表结构. 操作方法 01 第一步,我们打开mysql命令行编辑器. 02 第二步,我们输入密码,登录Mysql数据库. 03 第三步,我们先显示数据库,选择一个 ...

  • mysql中的乐观锁和悲观锁

    mysql中的 乐观锁和 悲观锁的简介以及如何简单运用. 操作方法 01 关于mysql中的乐观锁和悲观锁面试的时候被问到的概率还是比较大的. mysql的悲观锁: 其实理解起来非常简单,当数据被外界 ...

  • MySQL数据库limit分页、排序-SQL语句示例

    MySQL数据库limit分页.排序-SQL语句示例 select * from persons limit  A,  B; 解释: A,查询起点 B,你需要的行数 示例: select * from ...

  • ANSYS workbench 中生成用于轴对称分析用的2D图

    在ansys workbench中分析一些轴对称问题时,为了节约计算时间和占用内存空间,经常性将一些模型简化为2D模型来分析,本文简要介绍用3D模型抽取2D模型的方法. 操作方法 01 打开ANSYS ...