IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Mysql调优之Profiling -> 正文阅读

[大数据]Mysql调优之Profiling


一、引出Profiling

显然我们在评价一条SQL语句的好坏时最直观的评价指标就是它执行时长了。那我们要如何得知一条SQL语句的执行时间呢?Mysql5.0之后的版本提供了Query Profiler 功能,它不仅可以计算出每一条Query的执行时间,并且它还可以显示这条Query的性能问题,例如执行这条SQL消耗了到少CPU、IO等资源,以便于我们针对性的对其进行性能调优。

二、Profiling如何使用

1.开启Profiling

Profiling默认是关闭状态,我们先来查看一下此功能有没有开启:

  1. 登录mysql
mysql -uroot -p 
  1. 输入密码后,进到mysql里,输入如下语句查询profiling状态,可以看到默认值为OFF。
mysql> show variables like 'profiling';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| profiling     | OFF   |
+---------------+-------+
1 row in set, 9 warnings (0.00 sec)
  1. 开启profiling,关闭的话设置为0即可。
mysql> set profiling=1

2.Profiling使用

现在我们就可以来使用Profiling了。在开启profiling功能后,MySQL就会自动记录所有执行的 Query 的 profile 信息。

mysql> show profiles;

获取系统中所有Query的profile信息(默认显示最近15条,Query_ID依次递增)
在这里插入图片描述
其中Query_ID是SQL语句的ID编号,Duration是这条SQL语句的执行时长,Query是具体的SQL语句。
重点来了:我们还可以通过show profile [参数1] for query [Query_ID]来查看指定ID的SQL语句的详细资源消耗情况。
参数1为可选类型值,具体如下:

  • ALL显示所有信息
  • BLOCK IO显示块输入和输出操作的计数
  • CONTEXT SWITCHES显示自愿和非自愿上下文切换的计数
  • CPU显示用户和系统 CPU 使用时间
  • IPC显示发送和接收的消息计数
  • MEMORY当前未实现
  • PAGE FAULTS显示主要和次要页面错误的计数
  • SOURCE显示源代码中的函数名称,以及发生函数的文件的名称和行号
  • SWAPS显示交换计数
show profile cpu,block io for query [Query_ID];

在这里插入图片描述

三、实际应用场景

在开发阶段,出现慢SQL,我们可以先通过explain语句查看该SQL的执行情况;
例如,这里准备了一张表test_user,想要查询地区(region_id)为64的user_name:

explain select user_name from test_user WHERE region_id = 64;

在这里插入图片描述
看这条语句有没有走索引(key),我这显然是没有的,没有的话需要建立合适的索引;
如果已经走索引,可以通过show profile来进一步排查。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-26 16:58:01  更:2022-06-26 16:58:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/29 7:25:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码