mysql中profile的使用

1.profile在mysql5.0.37及其以上版本中可用

2.查看profile是否可用
SELECT @@profiling;
来查看是否已经启用profile,如果profilng值为0,可以通过
SET profiling = 1;
启用
mysql>select count(*) from roi_summary;

然后show profiles查看如下:

+----------------+------------+----------------------------------+
| Query_ID       | Duration   | Query                            |
+----------------+------------+----------------------------------+
|        1       | 0.00021500 | select @@profiling               |
|        2       | 0.05522700 | select count(*) from roi_summary |
+----------------+------------+----------------------------------+

其中ID为5的语句是刚执行的查询语句
mysql> show profile for query 2;
分析其性能
+--------------------------------+----------+
| Status                         | Duration |
+--------------------------------+----------+
| (initialization)               | 0.000004 |
| checking query cache for query | 0.000044 |
| Opening tables                 | 0.000012 |
| System lock                    | 0.000017 |
| Table lock                     | 0.00003  |
| init                           | 0.000013 |
| optimizing                     | 0.000008 |
| statistics                     | 0.000013 |
| preparing                      | 0.000011 |
| executing                      | 0.000006 |
| Sending data                   | 0.747313 |
| end                            | 0.000014 |
| query end                      | 0.000006 |
| storing result in query cache  | 0.000006 |
| freeing items                  | 0.000012 |
| closing tables                 | 0.000009 |
| logging slow query             | 0.000183 |
+--------------------------------+----------+
17 rows in set (0.00 sec)

#查看cpu io memory swaps
mysql> show profile cpu,block io,memory,swaps for query 2;

注意:
1.profile是用户级变量,每次都得重新启用
2.需在终端使用,在phpmyadmin下无效

时间: 2024-10-08 17:29:13

mysql中profile的使用的相关文章

MySQL中使用SHOW PROFILE命令分析性能的用法整理(配合explain效果更好,可以作为优化周期性检查)

这篇文章主要介绍了MySQL中使用show profile命令分析性能的用法整理,show profiles是数据库性能优化的常用命令,需要的朋友可以参考下 show profile是由Jeremy Cole捐献给MySQL社区版本的.默认的是关闭的,但是会话级别可以开启这个功能.开启它可以让MySQL收集在执行语句的时候所使用的资源.为了统计报表,把profiling设为1 mysql> SET profiling = 1; 之后在运行一个查询 mysql> SELECT COUNT(DIS

mysql explain profile用法

mysql explain用法 explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 使用方法,在select语句前加上explain就可以了,如: explain select * from statuses_status where id=11; explain列的解释table:显示这一行的数据是关于哪张表的 type:这是重要的列,显示连接使用了何种类型.从最好到最差的连接类型为const.eq_reg.ref.ran

mysql中用户权限导出的脚本

MySQL数据库备份和迁移,是DBA日常工作中,经常需要做的工作.备份一般由物理备份和逻辑备份两种,对于用xtrabackup进行物理备份来说,表数据和用户权限都会全部备份和恢复:如果是逻辑备份的话,用户数据和授权信息都需要单独的导出导入,用户数据直接用 mysqldump 工具导出导入即可,但mysql中用户权限不能直接导出导入,一个权限一个权限的处理,有比较麻烦. 所以编写一个mysql用户权限脚本,对源数据库中的用户授权信息进行导出,就非常必要了.只要有用户权限的授权sql,不论是平时备份

统计MySQL中每条sql的执行时间

一.概述 在MySQL中执行sql需要当前sql执行了多长时间,如果看? 二.方法 设置profiling SET profiling=1; 执行sql SELECT * FROM `test_table` 三.查看结果 SHOW profiles; 截图框中的为当前sql的执行时间,还可以通过以下sql,查看175这个Query ID具体时间消耗: SHOW profile FOR QUERY 175;

通过ansible安装mysql,apache,php,并实现rsyslog日志记录于MySQL中

环境: 192.168.205.7: as ansible host 192.168.205.37: as mariadb server 192.168.205.27: as web server and rsyslog client 版本: OS: centos 7 1810 with mini install ansible: 2.8.1 mariadb-10.2.25-linux-x86_64.tar.gz apr-1.7.0.tar.bz2 apr-util-1.6.1.tar.bz2

【个人笔记】《知了堂》MySQL中的数据类型

MySQL中的数据类型 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) mediumint(m) 3个字节  范围(-8388608~8388607) int(m) 4个字节  范围(-2147483648~2147483647) bigint(m) 8个字节  范围(+-9.22*10的18次方) 取值范围如果加了unsigned,则最大值翻倍,如tinyint un

mysql中int、bigint、smallint和tinyint的区别与长度

对比发现 int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 中的M时,默认分别是 : int             -------     int(11) bigint       -------     bigint(20) smallint   -------     smallint(6) tinyint     -------     tinyint(4) 下面是这几种类型的取值范围 参考:http://www.2cto.com/d

mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法

mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差.其结果的单位由interval 参数给出.interval 的法定值同TIMESTAMPADD()函数说明中所列出的相同. mysql> SELECT TIMESTAMPDIFF(MONTH,'200

SQL-GROUP BY语句在MySQL中的一个错误使用被兼容的情况

首先创建数据库hncu,建立stud表格. 添加数据: create table stud( sno varchar(30) not null primary key, sname varchar(30) not null, age int, saddress varchar(30) ); INSERT INTO stud VALUES('1001','Tom',22,'湖南益阳'); INSERT INTO stud VALUES('1002','Jack',23,'益阳'); INSERT