pt-query-digest

MySQL数据库优化

梦想的初衷 提交于 2020-01-13 13:46:59
数据库优化的目的 1.避免出现页面访问错误 由于数据库连接 timeout 产生页面5xx错误 由于慢查询造成页面无法加载 由于阻塞造成数据无法提交 2.增加数据库的稳定性 很多数据库问题都是由低效的查询引起的 3.优化用户体验 流畅的页面访问速度 良好的网站功能体验 MySQL数据库优化 上图是数据库优化的金字塔结构。可以看出,SQL及索引优化位于金字塔的最低层,是数据库优化的基础,成本最低,效果却最好。 一 SQL语句优化 找出有问题的SQL 1.1 使用MySQL慢查询日志对低效率的SQL进行监控 1)查询是否开启了慢查询日志 show variables like 'slow_query_log'; 2)设置记录未使用索引的查询 set global log_queries_not_using_indexes=on; 3)设置慢查询时间 set global long_query_time=0.1; 注:直接修改 global 的 long_query_time 在当前窗口是不生效的,在新打开的窗口才有效果。如果想让当前窗口生效,在设置时不用加 global 关键字。 4)设置慢查询日志地址 set global slow_query_log_file='/home/log/mysql/mysql-query.log'; 5)开启慢查询日志 set global slow

MySQL慢查询分析

邮差的信 提交于 2020-01-08 20:01:46
一、关于数据库性能分析 数据库服务器的性能: 我们将 性能定义为完成某件任务所需要的时间 ,性能即 响应时间 ,这是应该很重要的原则, 我们通过任务的响应时间而不是资源来测量时间。 性能:即完成任务的响应时间,单位时每个任务花费的时间。 任务:查询或者语句,如SELECT、UPDATE、DELETE。 所以 我们优化时,首先要知道,时间花在哪些地方 。这是第二个原则。 性能剖析: 任务花费时间分为:执行时间和的等待时间。 优化执行时间:通过测量定位不同的子任务花费的时间,然后优化去掉一些子任务,降低子任务的执行频率或者提升子任务的效率。 等待时间:多种原因引起,分析更为复杂。 性能剖析的一般步骤: 1.测量所花费的时间,使用查询日志。 2.然后对结果进行统计和排序,将重要的任务排到前面。 1.采集查询日志 我们如果要测量查询语句所花费的时间,就要捕获Mysql的查询到日志文件中。 Mysql为我们提高了以下的日志来捕获查询: 慢查询日志:io开销低,测量精度最高的查询时间的工具。 通用日志:很少用于分析查询,不包含响应时间和执行计划。 注意:长期开启慢日志,需要消耗大量的磁盘空间,需要部署日志轮转工具,或者只在需要采集查询的时候开启。 Mysql5.1及以后的版本,可以通过设置long_query_time为0来捕获所有的查询,查询的响应单位为微秒级。 2.分析查询日志 分析时

percona-toolkit之pt-query-digest详解

房东的猫 提交于 2019-12-05 03:49:19
一、简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。 二、安装pt-query-digest 1.下载页面:https://www.percona.com/doc/percona-toolkit/2.2/installation.html 2.perl的模块 源码安装 cd /mysql wget percona.com/get/percona-toolkit.tar.gz tar zxf percona-toolkit.tar.gz cd percona-toolkit-3.1.0 make && make install 工具安装目录在:/mysql/percona-toolkit/bin 4.各工具用法简介(详细内容:https://www.percona.com/doc/percona-toolkit/2.2/index.html) (1)慢查询日志分析统计 cd /mysql/percona-toolkit/bin

pt-query-digest使用详解

左心房为你撑大大i 提交于 2019-12-04 20:58:28
1.语法及重要选项 pt-query-digest [OPTIONS] [FILES] [DSN] --create-review-table 当使用--review参数把分析结果输出到表中时,如果没有表就自动创建。 --create-history-table 当使用--history参数把分析结果输出到表中时,如果没有表就自动创建。 --filter 对输入的慢查询按指定的字符串进行匹配过滤后再进行分析 --limit限制输出结果百分比或数量,默认值是20,即将最慢的20条语句输出,如果是50%则按总响应时间占比从大到小排序,输出到总和达到50%位置截止。 --host mysql服务器地址 --user mysql用户名 --password mysql用户密码 --history 将分析结果保存到表中,分析结果比较详细,下次再使用--history时,如果存在相同的语句,且查询所在的时间区间和历史表中的不同,则会记录到数据表中,可以通过查询同一CHECKSUM来比较某类型查询的历史变化。 --review 将分析结果保存到表中,这个分析只是对查询条件进行参数化,一个类型的查询一条记录,比较简单。当下次使用--review时,如果存在相同的语句分析,就不会记录到数据表中。 --output 分析结果输出类型,值可以是report(标准分析报告)、slowlog(Mysql

Linux环境pt-query-digest安装

微笑、不失礼 提交于 2019-12-03 20:52:15
1.下载安装工具 wget percona.com/get/pt-query-digest 2.授予用户执行权限 chmod u+x pt-query-digest 3.移动位置,注意pt-query-digest安装位置不一定在/目录下,也可能在/root/目录下,根据实际情况调整 mv /pt-query-digest /usr/bin/ 或 mv /root/pt-query-digest /usr/bin/ 4.安装与Perl相关的模块 yum install perl-DBI yum install perl-Digest-MD5 来源: https://www.cnblogs.com/1394htw/p/11808516.html

mysql慢日志分析组件安装

拟墨画扇 提交于 2019-12-03 06:51:18
1.pt-query-digest 安装 cd /usr/bin wget percona.com/get/pt-query-digest chmod u+x pt-query-digest yum install -y perl-Time-HiRes 2.命令示例 pt-query-digest --help pt-query-digest --report /opt/soft/mysql-slow.log 本文由博客一文多发平台 OpenWrite 发布! 架构设计@工程设计@服务稳定性之路 来源: https://www.cnblogs.com/coderManFans/p/11781316.html

慢查询分析工具之pt-query-digest

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 08:00:54
一、简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。 二、安装pt-query-digest 1.下载页面: https://www.percona.com/doc/percona-toolkit/2.2/installation.html 2.perl的模块 yum install -y perl-CPAN perl-Time-HiRes 3.安装步骤 方法一:rpm安装 cd /usr/local/src wget percona.com/get/percona-toolkit.rpm yum install -y percona-toolkit.rpm 工具安装目录在:/usr/bin 方法二:源码安装 cd /usr/local/src wget percona.com/get/percona-toolkit.tar.gz tar zxf percona-toolkit.tar.gz cd percona

性能优化之MySQL优化(慕课)

霸气de小男生 提交于 2019-12-01 05:08:19
MySQL数据库优化 1-1MySQL优化简介 数据库优化的目的 避免出现页面访问错误 由于数据库连接timeout产生5XX错误 由于慢查询造成页面无法加载 由于阻塞造成数据无法提交 增加数据库的稳定性 很多数据库的问题都是由于低效查询引起的 优化用户体验 流畅页面的访问速度 良好的网站功能体验 可以从以下几个方面进行数据库优化 MySQL数据库优化: 1.SQL语句优化 2.有效的索引 3.数据库的表结构 4.Linux系统配置优化:打开的文件数等 5.硬件:更加适合数据库系统的cpu、更快的io:ssd等、更多的内存... 2-1数据准备 Sakila样本数据库介绍 下载Sakila样本数据库,下载地址http://downloads.mysql.com/docs/sakila-db.tar.gz(下载页面http://dev.mysql.com/doc/index-other.html)。 导入sakila-schema.sql和sakila-data.sql文件 首先下载mysql5. 7 .18 zip安装包,配置环境变量 bin文件夹下建立my.ini [ mysqld ] basedir = E:\Program Files (x86)\mysql - 5.7 . 24 - winx64\mysql - 5.7 . 24 - winx64\bin datadir =

MySQL中的慢查询与分析工具

不羁的心 提交于 2019-11-30 11:57:03
MySQL中的慢查询 什么是慢查询 慢查询配置 慢查询解读 慢查询分析工具 mysqldumpslow pt_query_digest 语法 分析 总体分析 个体分析 什么是慢查询 慢查询日志,顾名思义,就是查询慢的日志,是指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。 慢查询配置 slow_query_log 是否开启慢查询日志 开启: set global slow_query_log = 1; slow_query_log_file 指定慢查询日志的存储路径及文件(默认和数据文件放一起) long_query_time 指定记录慢查询日志SQL执行时间得阈值(单位:秒,默认10秒) 如果你是处于学习阶段,想要自己看看慢查询日志,可以将阈值设置为0: set global long_query_time=0; log_queries_not_using_indexes 是否记录未使用索引的SQL log_output 日志存放的地方【TABLE】【FILE】【FILE,TABLE】 配置了慢查询后,它会记录符合条件的SQL 包括: 查询语句 数据修改语句 已经回滚的SQL 慢查询解读 第一行:记录时间 第二行

MySQL 慢查询日志分析 pt-query-digest

风流意气都作罢 提交于 2019-11-29 15:58:22
打开查询日志,会记录所有查询 general_log=ON general_log_file=/home/logs/mysql.log 下载安装 官方文档 https://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html wget http://www.percona.com/get/pt-query-digest yum -y install perl-Time-HiRes chmod +x pt-query-digest cp pt-query-digest /usr/bin/ 或者下载整套工具 wget percona.com/get/percona-toolkit.rpm rpm -ivh percona-toolkit-2.2.13-1.noarch.rpm wget percona.com/get/percona-toolkit.tar.gz tar -zxvf percona-toolkit-2.2.13.tar.gz cd percona-toolkit-2.2.13 perl Makefile.PL make && make install percona-toolkit工具包的使用教程之介绍和安装 http://blog.chinaunix.net/uid-20639775-id