mysql慢查询分析
1.生成实验数据
使用sql蠕虫复制足够多的数据
insert into payment (name,amount,address) select name,amount,addrss from payment
2.慢日志查询设置
(1)开启慢查询日志
set global slow_query_log = on;
show variables like 'slow_query_log';
设置完毕后,查询是否开启
set global slow_query_log = on;
(2)设置慢查询临界点
set long_query_time = 1;
(3)设置慢查询存储的方式
set globle log_output = file;
(4)查询慢查询的配置信息
show variables like '%quer%';
3.慢查询测试
(1)执行sql
select * from payment where payment_id<100000;
(2)查看日志
日志文件通过参数得知在/var/lib/mysql目录中
查看该日志文件
可以看到刚才插入数据的sql和查询sql都被记录起来了,且sql执行时间都超过了1s
字段 | 说明 |
---|---|
Query_time | SQL的查询时间 |
Lock_time | 锁定时间 |
Rows_sent | 所发送的行数 |
Rows_examined | 锁扫描的行数 |
SET timestamp=1565697747 | sql执行时间 |
select * from payment | sql执行语句 |
4.慢查询日志分析工具
(1)mysqldumpslow
显示出慢查询日志中最慢的10条sql
mysqldumpslow -t 10 /var/lib/mysql/iz2ze6p8tou7n39ta90oziz-slow.log
注意:在mysql数据库所在的服务器上,而不是在mysql>命令行中
(2)pt-query-digest
快速安装
wget https://www.percona.com/downloads/percona-toolkit/2.2.16/RPM/percona-toolkit-2.2.16-1.noarch.rpm && yum localinstall -y percona-toolkit-2.2.16-1.noarch.rpm
查看服务器信息
pt-summary
查看磁盘开销使用信息
pt-diskstats
查看mysql数据库信息
pt-mysql-summary --user=root --password=root
分析慢查询日志
pt-query-digest /var/lib/mysql/iz2ze6p8tou7n39ta90oziz-slow.log
查找mysql的从库和同步状态
pt-slave-find --host=localhost --user=root --password=root
查看mysql的死锁信息
pt-deadlock-logger --user=root --password=root localhost
从慢查询日志中分析索引使用情况
pt-index-usage slow_20131009.log
查找数据库表中重复的索引
pt-duplicate-key-checker --host=localhost --user=root --password=root
查看mysql表和文件的当前活动IO开销
pt-ioprofile
pt-find查找数据库里大于2G的表:
pt-find --user=root --password=root --tablesize +2G
5.如何分析
(1)查询次数多且每次查询占用时间长的sql
通常为pt-query-digest分析的前几个查询;该工具可以很清楚的看出每个SQL执行的次数及百分比等信息,执行的次数多,占比比较大的SQL
(2)IO大的sql
注意pt-query-digest分析中的Rows examine项。扫描的行数越多,IO越大。
(3)未命中的索引的SQL
注意pt-query-digest分析中的Rows examine (扫描行数)和Rows Sent(发送行数)的对比。如果扫描行数远远大于发送行数,说明该SQL的索引命中率不高,对于这种SQL,我们要重点进行关注。
mysql慢查询分析相关推荐
- mysql慢查询分析工具和分析方法
1.mysql慢查询分析工具 1.参考文档: http://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/ http://is ...
- 用MySql的查询分析语法explain来优化查询和索引
http://hi.baidu.com/wtnzone/item/beb83840a4971af4dd0f6c77 数据库最常见的操作就是查询了,我们经常要用"SELECT"语法对 ...
- Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解
Mysql慢查询开启 Mysql的查询讯日志是Mysql提供的一种日志记录,它用来记录在Mysql中响应时间超过阈值的语句,具体指运行时间超过long_query_time值得SQL,则会被记录到慢查 ...
- MySQL慢查询分析和性能优化
1 背景 我们的业务服务随着功能规模扩大,用户量扩增,流量的不断的增长,经常会遇到一个问题,就是数据存储服务响应变慢. 导致数据库服务变慢的诱因很多,而RD最重要的工作之一就是找到问题并解决问题. 下 ...
- mysql的查询分析工具下载_万能数据库查询分析器(ODBC数据库查询分析工具)V7.03 最新版...
万能数据库查询分析器(ODBC数据库查询分析工具)是一款功能强大,性能良好的数据库查询辅助工具,对开发人员来说是一款省时省力的数据库分析工具. 功能特点: 可以通过它查询ODBC数据源(包括世面上所有 ...
- mysql慢查询分析工具_mysql慢查询日志分析工具
启用 slow log 有两种启用方式:1, 在my.cnf 里 通过 log-slow-queries[=file_name] 2, 在mysqld进程启动时,指定--log-slow-querie ...
- MySQL慢查询分析方法
MySQL5.0以上的版本可以支持将执行比较慢的SQL语句记录下来. MySQL> show variables like 'long%'; 注:这个long_query_time是用来定义慢于 ...
- mysql 分页查询分析_mysql 大表分页查询测试分析优化
http://blog.csdn.net/xluren/article/details/32746183 http://www.cnblogs.com/kupig/archive/2011/10/19 ...
- 分析mysql慢查询_mysql慢查询的分析方法_MySQL
本文主要介绍的是MySQL慢查询分析方法,前一段日子,我曾经设置了一次记录在MySQL数据库中对慢于1秒钟的SQL语句进行查询.想起来有几个十分设置的方法,有几个参数的名称死活回忆不起来了,于是重新整 ...
最新文章
- html 跳转或打开新网页
- cannot import name '_imaging' from 'PIL'
- windows下使用Python出现No module named tkinter.ttk
- java robot 对象_用Java Robot对象实现服务器屏幕远程监视
- ICLR 2020 | “同步平均教学”框架为无监督学习提供更鲁棒的伪标签
- mysql错误:file xxx conflicts with file from package mysql-libs-5.5.68-1.el7.x86_64
- .NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
- JavaWeb基础(jsp初识)
- java判_java中判空
- 解决谷歌浏览器所有页面崩溃问题
- php报错提醒,php报错问题
- 【opencv】图像处理之伽马变换
- TrustBase团队完成subscript语言的Web3基金会Grant资助计划项目交付
- AWS知识图谱大赛 -- 负面新闻影响股票基金预测系统架构设计文档
- 项目配置管理工具研究
- 音乐flac怎么转为mp3?
- win10忘记redis密码
- 计算机桌面图标损坏,损坏的图像,教您提示损坏的图像该怎么解决
- “江湖笑”-献给怀有梦想的北漂一族
- delta函数的简化