查看 MySQL 語法 詳細執行時間 與 CPU/記憶體使用量: MySQL Query Profiler
MySQL 的 SQL 語法調整主要都是使用 EXPLAIN
, 但是這個並沒辦法知道詳細的 Ram(Memory)/CPU 等使用量.
於 MySQL 5.0.37 以上開始支援 MySQL Query Profiler, 可以查詢到此 SQL 會執行多少時間, 並看出 CPU/Memory 使用量, 執行過程中 System lock, Table lock 花多少時間等等.
MySQL Query Profile 詳細介紹可見: Using the New MySQL Query Profiler
(2007.04.05 發表)
效能分析主要分下述三種(轉載自上篇):
- Bottleneck analysis - focuses on answering the questions:
What is my database server waiting on; what is a user connection
waiting on; what is a piece of SQL code waiting on?
- Workload analysis - examines the server and who is logged on to determine the resource usage and activity of each.
- Ratio-based
analysis - utilizes a number of rule-of-thumb ratios to gauge
performance of a database, user connection, or piece of code.
MySQL Query Profile 使用方法
啟動
-
mysql> set profiling=1; # 此命令於 MySQL 會於 information_schema 的 database 建立一個 PROFILING 的 table 來紀錄.
SQL profiles show
查詢所有花費時間加總
查詢各執行階段花費多少時間
查詢各執行階段花費的各種資源列表
- mysql> show profile cpu for query 1; # Query ID = 1
+--------------------------------+----------+----------+------------+
| Status | Duration | CPU_user | CPU_system |
+--------------------------------+----------+----------+------------+
| (initialization) | 0.000007 | 0 | 0 |
| checking query cache for query | 0.000071 | 0 | 0 |
| Opening tables | 0.000024 | 0 | 0 |
| System lock | 0.000014 | 0 | 0 |
| Table lock | 0.000055 | 0.001 | 0 |
| init | 0.000036 | 0 | 0 |
| optimizing | 0.000013 | 0 | 0 |
| statistics | 0.000021 | 0 | 0 |
| preparing | 0.00002 | 0 | 0 |
| executing | 0.00001 | 0 | 0 |
| Sending data | 0.015072 | 0.011998 | 0 |
| end | 0.000021 | 0 | 0 |
| query end | 0.000011 | 0 | 0 |
| storing result in query cache | 0.00001 | 0 | 0 |
| freeing items | 0.000018 | 0 | 0 |
| closing tables | 0.000019 | 0 | 0 |
| logging slow query | 0.000009 | 0 | 0 |
+--------------------------------+----------+----------+------------+
- mysql> show profile IPC for query 1;
+--------------------------------+----------+---------------+-------------------+
| Status | Duration | Messages_sent | Messages_received |
+--------------------------------+----------+---------------+-------------------+
| (initialization) | 0.000007 | 0 | 0 |
| checking query cache for query | 0.000071 | 0 | 0 |
| Opening tables | 0.000024 | 0 | 0 |
| System lock | 0.000014 | 0 | 0 |
| Table lock | 0.000055 | 0 | 0 |
| init | 0.000036 | 0 | 0 |
| optimizing | 0.000013 | 0 | 0 |
| statistics | 0.000021 | 0 | 0 |
| preparing | 0.00002 | 0 | 0 |
| executing | 0.00001 | 0 | 0 |
| Sending data | 0.015072 | 0 | 0 |
| end | 0.000021 | 0 | 0 |
| query end | 0.000011 | 0 | 0 |
| storing result in query cache | 0.00001 | 0 | 0 |
| freeing items | 0.000018 | 0 | 0 |
| closing tables | 0.000019 | 0 | 0 |
| logging slow query | 0.000009 | 0 | 0 |
+--------------------------------+----------+---------------+-------------------+
其它屬性列表
- 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筆
關閉
分享到:
相关推荐
本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...
尽管如此,我将基于标题和描述中提供的关键词“Effective MySQL之SQL语句最优化”来构建知识点。 1. SQL语句最优化的概念:在数据库管理中,对SQL语句进行优化是提高数据库性能的关键环节。最优化的SQL语句能够在...
MySQL SQL语句练习题及答案 本资源提供了 MySQL SQL 语句的练习题及答案,涵盖了创建表、插入数据、删除数据、更新数据、查询数据等多方面的知识点。 一、创建表 在 MySQL 中,创建表使用 CREATE TABLE 语句。...
《Effective MySQL之SQL语句最优化》提供了很多可以用于改进数据库和应用程序性能的最佳实践技巧,并对这些技巧做了详细的解释。《Effective MySQL之SQL语句最优化》希望能够通过一步步详细介绍SQL优化的方法,帮助...
标题 "PB 从SQL语句获取数据存储(MySQL)" 指的是使用PowerBuilder (PB) 开发工具,通过SQL语句从MySQL数据库中检索和处理数据存储的过程。在这个Demo中,PB11.5 版本被用作开发环境,而MySQL作为后台数据库系统。...
本文将详细讲解如何连接MySQL以及执行基本的SQL语句,旨在帮助初学者快速上手。 首先,我们需要了解连接MySQL的必要工具。在命令行环境下,可以使用`mysql`客户端直接与服务器交互;而在编程环境中,如Python,我们...
MySQL SQL 语句实践指南 MySQL 是一种广泛使用的关系数据库管理系统,SQL 语句是其核心组成部分。今天,我们将介绍六个有用的 MySQL SQL 语句,帮助您更好地使用 MySQL 数据库。 1. 计算年数 计算年数是日常生活...
SQL语句执行器是一款专为初学者和数据库管理员设计的在线工具,允许用户在网站后台直接输入并执行SQL(Structured Query Language)语句,以便于查询、管理以及操作数据库。这款程序极大地简化了数据库交互的过程,...
mysql sql编程入门级资料 包括数据库的增、删、改、查。
通过配置数据库连接信息和要执行的sql语句,可实现定时执行多个sql语句。 所要执行的语句只能是写死的,可支持sqlserver mysql oracle。 配置说明: config/sys.properties 中指定数据库类型及连接信息,执行间隔...
"Oracle数据库sql转换mysql数据库工具" 提供了解决这一问题的解决方案,允许用户将Oracle数据库中的SQL语句或数据结构转换为MySQL兼容的格式。 在数据库迁移过程中,这样的工具至关重要,因为它可以简化工作流程,...
一种可能的方法是通过日志配置,例如,启用MySQL的`Statement`和`PreparedStatement`日志,这样在执行时会打印出详细的SQL语句。 另外,开发工具如IntelliJ IDEA、Eclipse等,或者数据库管理工具如MySQL Workbench...
事务处理语言(TPL)是用于管理SQL语句执行的事务,它包含BEGIN TRANSACTION、COMMIT和ROLLBACK三个语句。BEGIN TRANSACTION用于标记事务的开始,COMMIT用于确认事务中的操作,而ROLLBACK则用于撤销事务中的操作。 ...
Python 使用 SQL 语句对 MySQL ...使用 Python 对 MySQL 数据库进行多条件模糊查询需要我们使用字符串拼接的方式构建 SQL 语句,并执行 SQL 语句获取查询结果。同时,我们需要注意参数是否为空,并避免 SQL 注入攻击。
【作品名称】:对比两个mysql数据库显示差异并生成更新SQL语句,执行到指定数据库 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 ...
- **执行时间统计**:每个SQL语句执行完毕后,系统会自动记录并显示其执行时间,帮助用户快速了解每条SQL语句的性能表现。 **2. 受影响记录数统计** - 对于更新、插入或删除操作,工具会报告受影响的记录数。 - ...
2. 转换规则应用:根据SQL Server的语法特性,工具会将MySQL的SQL语句转化为相应的SQL Server语法。 3. 数据导出:将MySQL中的数据导出为SQL脚本,或者直接导入到SQL Server中。 4. 验证与调整:迁移后,需要验证...
自己写的两个SQL语句生成对应数据库的数据字典,一个生成表集合,一个生成字段集合 只需修改where语句后面的TABLE_SCHEMA的数据库名即可
MySQL mysql_query 函数执行 SQL 语句 mysql_query() 函数是 PHP MySQL 函数库中的一种函数,用于向 MySQL 发送并执行 SQL 语句。该函数可以对数据库进行增删改查等操作,並返回执行结果。 参数说明: * query:...
mysql sql常用语句大全