MySQL Query Profile MySQL 5.0.37 以上开始支持 MySQL Query Profiler, 可以查询到此 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 System lock, Table lock 花多少时间等等.
详细可以参见官方文档:Using the New MySQL Query Profiler
启动
mysql> set profiling=1;
Query OK, 0 rows affected (0.00 sec)
测试查询
mysql> select count(*) from client where broker_id=2;
+----------+
| count(*) |
+----------+
| 200 |
+----------+
1 row in set (0.00 sec)
查看profiles
mysql> show profiles;
+----------+------------+-----------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-----------------------------------------------+
| 0 | 0.00007300 | set profiling=1 |
| 1 | 0.00044700 | select count(*) from client where broker_id=2 |
+----------+------------+-----------------------------------------------+
2 rows in set (0.00 sec)
查看单条profile
mysql> show profile for query 1;
+--------------------+------------+
| Status | Duration |
+--------------------+------------+
| (initialization) | 0.00006300 |
| Opening tables | 0.00001400 |
| System lock | 0.00000600 |
| Table lock | 0.00001000 |
| init | 0.00002200 |
| optimizing | 0.00001100 |
| statistics | 0.00009300 |
| preparing | 0.00001700 |
| executing | 0.00000700 |
| Sending data | 0.00016800 |
| end | 0.00000700 |
| query end | 0.00000500 |
| freeing items | 0.00001200 |
| closing tables | 0.00000800 |
| logging slow query | 0.00000400 |
+--------------------+------------+
15 rows in set (0.00 sec)
mysql> alter table t engine=myisam;
Query OK, 112050 rows affected (0.64 sec)
Records: 112050 Duplicates: 0 Warnings: 0
mysql> show profiles;
+----------+------------+-----------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-----------------------------------------------+
| 0 | 0.00007300 | set profiling=1 |
| 1 | 0.00044700 | select count(*) from client where broker_id=2 |
| 2 | 0.00003400 | set profiling=0 |
| 3 | 0.00007400 | set profiling=1 |
| 4 | 0.63789700 | alter table t engine=myisam |
| 5 | 0.00004000 | set profiling=0 |
+----------+------------+-----------------------------------------------+
6 rows in set (0.00 sec)
mysql> show profile for query 4;
+----------------------+------------+
| Status | Duration |
+----------------------+------------+
| (initialization) | 0.00002900 |
| checking permissions | 0.00000800 |
| init | 0.00004000 |
| Opening table | 0.00009400 |
| System lock | 0.00000500 |
| Table lock | 0.00000700 |
| setup | 0.00004200 |
| creating table | 0.00195800 |
| After create | 0.00010900 |
| copy to tmp table | 0.52264500 |
| rename result table | 0.11289400 |
| end | 0.00004600 |
| query end | 0.00000700 |
| freeing items | 0.00001300 |
+----------------------+------------+
14 rows in set (0.00 sec)
查看cpu资源等信息
mysql> show profile cpu for query 4;
+----------------------+------------+------------+------------+
| Status | Duration | CPU_user | CPU_system |
+----------------------+------------+------------+------------+
| (initialization) | 0.00002900 | 0.00000000 | 0.00000000 |
| checking permissions | 0.00000800 | 0.00000000 | 0.00000000 |
| init | 0.00004000 | 0.00000000 | 0.00000000 |
| Opening table | 0.00009400 | 0.00100000 | 0.00000000 |
| System lock | 0.00000500 | 0.00000000 | 0.00000000 |
| Table lock | 0.00000700 | 0.00000000 | 0.00000000 |
| setup | 0.00004200 | 0.00000000 | 0.00000000 |
| creating table | 0.00195800 | 0.00000000 | 0.00100000 |
| After create | 0.00010900 | 0.00000000 | 0.00000000 |
| copy to tmp table | 0.52264500 | 0.55591600 | 0.04199300 |
| rename result table | 0.11289400 | 0.00199900 | 0.00000000 |
| end | 0.00004600 | 0.00000000 | 0.00000000 |
| query end | 0.00000700 | 0.00000000 | 0.00000000 |
| freeing items | 0.00001300 | 0.00000000 | 0.00000000 |
+----------------------+------------+------------+------------+
14 rows in set (0.00 sec)
其他属性列表
* ALL - displays all information
* BLOCK IO - displays counts for block input and output operations
* CONTEXT SWITCHES - displays counts for voluntary and involuntary context switches
* IPC - displays counts for messages sent and received
* MEMORY - is not currently implemented
* PAGE FAULTS - displays counts for major and minor page faults
* SOURCE - displays the names of functions from the source code, together with the name and line number of the file in which the function occurs
* SWAPS - displays swap counts
设定profiling保存size
mysql> show variables where variable_name='profiling_history_size'; # 默认15条
关闭
mysql> set profiling=0;
相关推荐
如果想查看特定查询的详细执行步骤,可以使用`SHOW PROFILE FOR QUERY [Query_ID]`,其中`Query_ID`是从`SHOW PROFILES`中获取的ID。 Profiler会展示一系列的状态,如`starting`、`Waiting for query cache lock`、...
若想查看特定SQL语句的详情,使用`SHOW PROFILE`,并提供查询ID(例如`FOR QUERY n`)。 `SHOW PROFILE`命令还可以接受不同类型的资源使用情况作为参数,如`ALL`、`BLOCK IO`、`CONTEXT SWITCHES`、`CPU`、`IPC`、`...
- 分析工具:可以使用MySQL自带的`mysqldumpslow`工具或者第三方工具如Percona Toolkit中的`pt-query-digest`来分析慢查询日志。 2. **Explain语句**:利用`EXPLAIN`关键字来分析SQL语句的执行计划,了解查询是...
在大数据处理领域,Apache Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)查询和管理存储在Hadoop分布式文件系统(HDFS)中的大量结构化数据。本教程将详细介绍如何安装Hive,...
然后执行需要分析的SQL语句,之后可以通过`SHOW PROFILES`命令查看所有已执行过的查询及其执行时间,并使用`SHOW PROFILE FOR QUERY <query_id>`来获取指定查询的详细性能报告。例如: ```sql SHOW PROFILES; ``` ...
5. **Query Cache**:MySQL 5.1.43可能优化了查询缓存,允许数据库服务器存储已执行的SQL查询结果,从而在后续相同的查询请求时提供更快的响应时间。 6. **线程池**:MySQL 5.1引入了线程池,以减少创建和销毁线程...
总之,MySQL的Query Profiling是数据库管理员和开发者的有力工具,通过监控和分析查询的资源使用情况,可以有效地定位性能瓶颈,进行有针对性的优化,提升整体系统性能。在实践中,应定期检查和分析Profile结果,...
例如,`show profile for query 1`可以查看特定查询的详细执行时间分布,这对于找出性能瓶颈很有帮助。 2. **使用Performance Schema**:这是一个更为详细的监控工具,可以跟踪资源消耗、等待事件等。例如,通过...
总的来说,MySQL profile是一个基础的性能分析工具,虽然在新版本中不再推荐使用,但它仍然为理解SQL执行提供了一种直观的方法。通过profile,你可以了解SQL语句的执行顺序和时间消耗,为进一步的性能优化提供指导。...
3. **配置环境变量**:在`~/.bashrc`或`/etc/profile`文件中添加MySQL的路径,例如`export PATH=$PATH:/usr/local/mysql/bin`。 4. **预编译检查**:运行`./configure`检查系统依赖和配置。如果有缺失的库,需要先...
2. **查询优化器改进**:优化器加入了新的统计信息和策略,如Query Profile,用于更准确地估算查询执行成本,从而选择最优执行计划。另外,支持基于成本的优化器(CBO)也是此版本的一大亮点。 3. **分区功能增强**...
- `SHOW PROFILE FOR QUERY query_id;`:显示特定SQL语句的详细性能统计信息。 通过以上介绍,我们可以看出MySQL执行计划和索引优化是提高数据库性能的重要手段。合理地使用`EXPLAIN`和`PROFILE`工具,结合正确的...
MySQL 的 SQL 語法調整主要都是使用 EXPLAIN , 但是這個並沒辦法知道詳細的...MySQL Query Profile 詳細介紹可見: Using the New MySQL Query Profiler (2007.04.05 發表) 效能分析主要分下述三種(轉載自上篇): Bottl
SELECT DISTINCT CONCAT('User:\'', user, '\'@\', host, '\'') AS query FROM mysql.user; ``` #### 六、总结 本文详细介绍了如何在CentOS 6及CentOS 7环境下手动安装MySQL的过程,包括清理旧版MySQL、添加依赖...
要使用该功能,mysql的版本必须在5.0.37版本以上。否则只能使用explain 的方式来检查。 profiling 功能可以了解到cpu io 等更详细的信息。 show profile 的格式如下: SHOW PROFILE [type [, type] ... ] [FOR ...
8. 监控与分析:定期使用MySQL的性能分析工具,如`EXPLAIN`、`PROFILE`等,对查询性能进行诊断和优化。 总之,选择合适的方法查询随机数据,结合SQL优化技巧和数据库设计策略,能够显著提升MySQL的查询性能。在实际...