数据库高级知识——查询截取分析(二)
文章目录
- 3.Show Profile
- 3.1 show profile是什么
- 3.2 分析步骤
- 4.全局查询日志
- 4.1配置启用
- 4.2编码启用
3.Show Profile
3.1 show profile是什么
show profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量
默认情况下,参数处于关闭状态,并保存最近15次的运行结果
官网
3.2 分析步骤
1.是否支持,看看当前的mysql版本是否支持
mysql> Show variables like 'profiling';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling | OFF |
+---------------+-------+
1 row in set (0.01 sec)
默认是关闭,使用前需要开启
2.开启功能,默认是关闭,使用前需要开启
mysql> set profiling=1;
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> Show variables like 'profiling';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling | ON |
+---------------+-------+
1 row in set (0.00 sec)
3.运行SQL
mysql> select * from students;
+------+-------+
| id | name |
+------+-------+
| 1 | zhao1 |
| 2 | zhao2 |
| 3 | zhao3 |
+------+-------+
3 rows in set (0.03 sec)
4.查看结果
show profiles;
mysql> show profiles;
+----------+------------+----------------------------------+
| Query_ID | Duration | Query |
+----------+------------+----------------------------------+
| 1 | 0.00189725 | Show variables like 'profiling' |
| 2 | 0.00037950 | SELECT DATABASE() |
| 3 | 0.00436850 | show databases |
| 4 | 0.00493400 | show tables |
| 5 | 0.00287150 | show tables |
| 6 | 0.02086075 | select * from students |
+----------+------------+----------------------------------+
6 rows in set, 1 warning (0.00 sec)
5.诊断SQL
show profile cpu,block io for query n #(n为上一步前面的问题SQL数字号码);
mysql> show profile cpu,block io for query 6;
+--------------------------------+----------+----------+------------+--------------+---------------+
| Status | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+--------------------------------+----------+----------+------------+--------------+---------------+
| starting | 0.000111 | 0.000110 | 0.000000 | 0 | 0 |
| Executing hook on transaction | 0.000012 | 0.000011 | 0.000000 | 0 | 0 |
| starting | 0.000018 | 0.000018 | 0.000000 | 0 | 0 |
| checking permissions | 0.000016 | 0.000016 | 0.000000 | 0 | 0 |
| Opening tables | 0.000062 | 0.000062 | 0.000000 | 0 | 0 |
| init | 0.000016 | 0.000016 | 0.000000 | 0 | 0 |
| System lock | 0.000021 | 0.000021 | 0.000000 | 0 | 0 |
| optimizing | 0.000073 | 0.000056 | 0.000000 | 0 | 0 |
| statistics | 0.000029 | 0.000029 | 0.000000 | 0 | 0 |
| preparing | 0.000035 | 0.000035 | 0.000000 | 0 | 0 |
| executing | 0.020360 | 0.000411 | 0.000000 | 32 | 0 |
| end | 0.000016 | 0.000014 | 0.000000 | 0 | 0 |
| query end | 0.000008 | 0.000008 | 0.000000 | 0 | 0 |
| waiting for handler commit | 0.000012 | 0.000012 | 0.000000 | 0 | 0 |
| closing tables | 0.000013 | 0.000013 | 0.000000 | 0 | 0 |
| freeing items | 0.000027 | 0.000028 | 0.000000 | 0 | 0 |
| cleaning up | 0.000033 | 0.000033 | 0.000000 | 0 | 0 |
+--------------------------------+----------+----------+------------+--------------+---------------+
17 rows in set, 1 warning (0.00 sec)
参数备注:
type:
| ALL --显示所有的开销信息
| BLOCK IO --显示块IO相关开销
| CONTEXT SWITCHES --上下文切换相关开销
| CPU --显示CPU相关开销信息
| IPC --显示发送和接收相关开销信息
| MEMORY --显示内存相关开销信息
| PAGE FAULTS --显示页面错误相关开销信息
| SOURCE --显示和Source_function,Source_file,Source_line相关的开销信息
| SWAPS --显示交换次数相关开销的信息
6.日常开发需要注意的结论
converting HEAP to MyISAM 查询结果太大,内存都不够用了往磁盘上搬了。Creating tmp table 创建临时表拷贝数据到临时表用完再删除Copying to tmp table on disk 把内存中临时表复制到磁盘,危险!!!locked
4.全局查询日志
4.1配置启用
/etc/mysql/mysql.conf.d/mysqld.cnf
# Log all queries
# Be aware that this log type is a performance killer.
# general_log_file = /var/log/mysql/query.log
# general_log = 1
4.2编码启用
#命令 尽量不要在生产环境开启这个功能。
set global general_log=1;#全局日志可以存放到日志文件中,也可以存放到Mysql系统表中。存放到日志中性能更好一些,存储到表中
set global log_output='TABLE';#此后 ,你所编写的sql语句,将会记录到mysql库里的general_log表,可以用下面的命令查看select * from mysql.general_log;
数据库高级知识——查询截取分析(二)相关推荐
- 数据库高级知识——查询截取分析(一)
文章目录 1.慢查询日志 1.1 慢查询日志是什么 1.2 慢查询日志的操作 1.3 日志分析工具mysqldumpslow 2.批量数据脚本 1.慢查询日志 1.1 慢查询日志是什么 MySQL的慢 ...
- 数据库高级知识——索引优化分析(二)
文章目录 4.性能分析 4.1 MySQL常见瓶颈 4.2 Explain 5.查询优化 5.1 索引失效 5.2 索引优化 4.性能分析 4.1 MySQL常见瓶颈 CPU :SQL中对大量数据进行 ...
- 数据库高级知识——索引优化分析(一)
文章目录 1.SQL性能下降原因 2.常见通用的Join查询 2.1 SQL执行顺序 2.2 Join图 3.索引简介 3.1 索引是什么 3.2 索引优势 3.3 索引劣势 3.4 索引分类 3.5 ...
- 第 3 章 查询截取分析
第 3 章 查询截取分析 1.查询优化 1.1.MySQL 优化原则 mysql 的调优大纲 慢查询的开启并捕获 explain+慢SQL分析 show profile查询SQL在Mysql服务器里面 ...
- Mysql慢查询日志,查询截取分析
目录标题 慢查询日志 慢查询日志分析工具 Show Profile 全局查询日志 慢查询日志 mysql提供了一种慢查询日志的功能,该功能默认是关闭的,我们可以设置一个阀值,就比如3秒钟,只要是执行的 ...
- MySQL慢查询日志分析(二)
1: 为什么在慢查询日志里面出现Query_time小于long_query_time阀值的SQL语句呢? 例如,long_query_time=5, 但是Query_time小于1秒的SQL都记录到 ...
- 数据库高级知识——mysql架构介绍(二)
文章目录 1.Mysql逻辑架构介绍 1.1 总体概览 1.2 查询说明 2.Mysql存储引擎 2.1 查看命令 2.2 各个引擎简介 2.3 MyISAM和InnoDB 2.4 阿里巴巴.淘宝用哪 ...
- mysql数据库日志截断,MySQL基础(十一):查询截取分析
下面是小凰凰的简介,看下吧!
- 数据库高级知识——MySql锁机制
文章目录 1.概述 1.1 定义 1.2 锁的分类 2.三锁 2.1 表锁(偏读) 2.2 行锁(偏写) 2.3 页锁 1.概述 1.1 定义 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数 ...
最新文章
- Linux安装—IP设置
- 常见问题_数组索引越界异常
- 消除代码中的坏味道,编写高质量代码
- 度量空间的应用_使用Dropwizard度量标准监视和测量无功应用
- C语言判断系统是32位还是64位
- Oracle数据库用户查询常用命令
- 机顶盒改成无线打印服务器,【当贝市场】如何将网络机顶盒改装成无线路由器...
- 使用wireshark分析HTTPS数据包
- ios浏览器微信支付回调页面_iOS微信支付结果页面返回原程序按钮
- 怎么样才能买到廉价机票
- 笔记本电脑怎样重装系统
- 华为机考1-54题总结
- 处理echarts地图省份坐标重叠的方法
- 换工作记(二)----- 2008个人简历
- 期货反向跟单—我们与规律同在
- java计算机毕业设计ssm基于大数据的汽车流量监控cvej1(附源码、数据库)
- 使用面向对象思想设计电子宠物系统
- 两台Linux完美实现双机热备
- 中国人民大学与加拿大女王大学金融硕士引领你走出职场困境,勇往直前!
- Android集成华为推送功能详细
热门文章
- LeetCode 1615. 最大网络秩(出入度)
- 剑指Offer - 面试题53 - II. 0~n-1中缺失的数字(二分、位运算)
- python json序列化对象_Python学习之json序列化
- java基础之lambda表达式
- Oracle数据库逻辑存储结构管理相关问题与解决
- SQL Server时间函数
- android wsdl封装,《android 解析WebService》
- 【DKN】(六)KCNN.py
- 11月AI大事件回顾:GPT3开放使用/女娲视觉大模型/AE文艺复兴/...
- Spring Boot 2.x基础教程:Swagger静态文档的生成