[转]使用mysql profiles 来查看sql 语句执行计划
From : http://blog.csdn.net/radkitty/article/details/4632289
要使用该功能,mysql的版本必须在5.0.37版本以上。否则只能使用explain 的方式来检查。
profiling 功能可以了解到cpu io 等更详细的信息。
show profile 的格式如下:
SHOW PROFILE [type
[, type
] ... ]
[FOR QUERY n
]
[LIMIT row_count
[OFFSET offset
]]type
:
ALL
| BLOCK IO
| CONTEXT SWITCHES
| CPU
| IPC
| MEMORY
| PAGE FAULTS
| SOURCE
| SWAPS
默认方式下该功能是关闭的:
mysql>select @@profiling;
+-------------+
| @@profiling |
+-------------+
| 0 |
+-------------+
1 row in set (0.00 sec)
打开功能
mysql>set profiling=1;
+-------------+
| @@profiling |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec)
输入需要执行的sql 语句:
mysql>select count(*) from sysuser;
mysql>select count(*) from sysuser;
mysql> show profiles/G;
*************************** 1. row ***************************
Query_ID: 1
Duration: 0.00007550
Query: select count(*) from sysuser
1 row in set (0.00 sec)
通过指定的Query_ID 来查询指定的sql语句的执行信息:
mysql> show profile for query 1;
+--------------------------------+----------+
| Status | Duration |
+--------------------------------+----------+
| starting | 0.000028 |
| checking query cache for query | 0.000008 |
| checking privileges on cached | 0.000009 |
| sending cached result to clien | 0.000023 |
| logging slow query | 0.000004 |
| cleaning up | 0.000003 |
+--------------------------------+----------+
6 rows in set (0.00 sec)
mysql> show profile cpu,block io for query 1;
+--------------------------------+----------+----------+------------+--------------+---------------+
| Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+--------------------------------+----------+----------+------------+--------------+---------------+
| starting | 0.000028 | NULL | NULL | NULL | NULL |
| checking query cache for query | 0.000008 | NULL | NULL | NULL | NULL |
| checking privileges on cached | 0.000009 | NULL | NULL | NULL | NULL |
| sending cached result to clien | 0.000023 | NULL | NULL | NULL | NULL |
| logging slow query | 0.000004 | NULL | NULL | NULL | NULL |
| cleaning up | 0.000003 | NULL | NULL | NULL | NULL |
+--------------------------------+----------+----------+------------+--------------+---------------+
6 rows in set (0.00 sec)
如果不带for 参数则指列出最后一条语句的profile 信息:
mysql> show profile cpu,block io for query 1;
+--------------------------------+----------+----------+------------+--------------+---------------+
| Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+--------------------------------+----------+----------+------------+--------------+---------------+
| starting | 0.000028 | NULL | NULL | NULL | NULL |
| checking query cache for query | 0.000008 | NULL | NULL | NULL | NULL |
| checking privileges on cached | 0.000009 | NULL | NULL | NULL | NULL |
| sending cached result to clien | 0.000023 | NULL | NULL | NULL | NULL |
| logging slow query | 0.000004 | NULL | NULL | NULL | NULL |
| cleaning up | 0.000003 | NULL | NULL | NULL | NULL |
+--------------------------------+----------+----------+------------+--------------+---------------+
6 rows in set (0.00 sec)
关闭参数:
mysql> set profiling=0
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling | OFF |
+---------------+-------+
1 row in set (0.00 sec)
相关文章
- mysql 删除语句多表关联_MySQL多表关联数据同时删除sql语句
- MySQL轻松实现快速导入SQL文件(mysql快速导入sql文件)
- MySQL技术的进步与2020年的挑战(mysql当前年月)
- 检查MySQL安装是否成功:一步一步教你(怎么看mysql是否安装成功)
- MySQL数据库连接: 一步一步构建SQL语句(mysql连接数据库语句)
- 数据库的比较比较分析:MS SQL 与 MySQL 数据库之间的异同(mssql跟mysql)
- MySQL脚本执行高效操作指南(mysql脚本执行)
- MySQL数据库:深度研习(mysql数据库深入学习)
- VB编程查询MySQL数据库实战指南(vb查询mysql数据库)
- MySQL实现分页查询和行号的技巧(mysql分页行号)
- MySQL常用命令行指南:执行快速操作(mysql常用命令行)
- Mysql数据表添加外键约束的SQL语句(mysql添加外键语句)
- 如何使用 MySQL 导入 SQL 文件?(mysql导入sql文件)
- MySQL操作手册:完整指南及技巧(mysql大全)
- MySQL中rank函数轻松实现数据排名(mysql中rank函数)
- MySQL 中的 Column探究数据表中字段的重要性(mysql中column)
- MySQL 创建表语句详解(mysql下创建表语句)
- MySQL查询父子级关系的SQL语句(mysql 上下级sql)
- 深入探讨MySQL中上下级SQL语句的实现方法(mysql 上下级sql)
- Mysql出现安装问题尝试这些解决方法(mysql不执行安装)
- MySQL配置无弹窗解决方法(mysql不弹出配置)