君玉自牧 君玉自牧
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
  • 技术架构

  • 桌面维护

  • 网络工程

  • 系统运维

    • Linux

    • Apache

    • Nginx

    • MySQL

      • MySQL 安装部署 & 项目实践
      • MySQL 主从复制 & 读写分离
      • MySQL 相关设置 & 性能调优
      • MySQL 数据备份 & 迁移恢复
      • MySQL v5.7.9 安装部署
      • MySQL 事务 & 视图 & 索引
      • MySQL 慢查询 & 可视化分析
        • 查询
        • 分析
          • 安装
          • 使用
        • 显示
      • MySQL 位运算函数
      • SQL 语法入门
    • Redis

    • MQ

    • ELK

    • Nacos

    • PostgreSQL

    • MongoDB

  • 环境搭建

  • 容器编排

  • 持续集成

  • 监控告警

  • 项目实践

  • 脚本开发

  • 前端开发

  • 后端开发

  • 效率工具

目录

MySQL 慢查询 & 可视化分析

# 查询

慢查询,顾名思义就是数据库中运行比较慢的 SQL 语句,MySQL 这个功能需要开启才能用;

show variables like '%slow_query_log%';
* slow_query_log //是否开启,默认关闭,建议调优时才开启
* slow_query_log_file //慢查询日志存放目录
show variables like 'long_query_time%';
* 查看阀值(大于),默认 10s
show variables like '%log_output%';
* 查看慢查询日志记录方式
set global slow_query_log =1; //只对当前会话生效,重启失效
set global long_query_time = 1; //设置慢查询阀值
把未使用索引的 SQL 记录写入慢查询日志:
show variables like 'log_queries_not_using_indexes'; //查看设置,默认关闭
set global log_queries_not_using_indexes = on; //设置
1
2
3
4
5
6
7
8
9
10
11
12

以上设置服务重启后失效,永久开启需要修改配置文件;

vi my.cnf
在[mysqld]下添加:
slow_query_log = 1 //开启慢查询
long_query_time = 1 //设置慢查询阈值
log_output = File,TABLE //设置慢查询记录方式,File 是文件,Table 会写入 mysql.slow_log 表
slow_query_log_file = /var/lib/mysql/slow.log //设置慢查询日志位置
1
2
3
4
5
6

保存以后,重启 MySQL 服务即可。

# 分析

分析工具有很多,本文使用的是 Percona-Toolkit 中的 pt-query-digest 进行分析

# 安装

https://www.percona.com/downloads/percona-toolkit/3.3.1/binary/redhat/7/ (opens new window)

#安装软件源
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
#查询是否安装正确
yum list | grep percona-toolkit
#安装
yum install percona-toolkit

yum install https://downloads.percona.com/downloads/percona-toolkit/3.3.1/binary/redhat/7/x86_64/percona-toolkit-3.3.1-1.el7.x86_64.rpm
1
2
3
4
5
6
7
8

# 使用

pt-query-digest --help
pt-table-checksum --help

/usr/bin/pt-query-digest --user=root --password=XXXXXXXX --port=3306 --review h=127.0.0.1,D=slow_query_log,t=global_query_review --history h=127.0.0.1,D=slow_query_log,t=global_query_review_history --no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /var/log/mysqld-slow.log
1
2
3
4

# 显示

从 Github 中找到几个 UI 项目,基本都是通过上述工具分析将结果写入新库,然后通过 PHP 等调用 https://dbaplus.cn/news-11-2520-1.html (opens new window)

网页编辑 (opens new window)
最近提交: 2023/03/22, 11:52:35
MySQL 事务 & 视图 & 索引
MySQL 位运算函数

← MySQL 事务 & 视图 & 索引 MySQL 位运算函数→

Theme by Vdoing | Copyright © 2011-2023 | 君玉自牧
粤ICP备15057965号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式