Mysql 慢查询和慢查询日志分析

众所周知,大访问量的情况下,可添加节点或改变架构可有效的缓解数据库压力,不过一切的原点,都是从单台mysql开始的。下面总结一些使用过或者研究过的经验,从配置以及调节索引的方面入手,对mysql进行一些优化。
第一步应该做的就是排查问题,找出瓶颈,所以,先从日志入手
开启慢查询日志
mysql>show variables like “%slow%”; 查看慢查询配置,没有则在my.cnf中添加,如下

log-slow-queries = /data/mysqldata/slowquery.log    #日志目录
long_query_time = 1                          #记录下查询时间超过1秒
log-queries-not-using-indexes     #表示记录下没有使用索引的查询

分析日志 – mysqldumpslow
分析日志,可用mysql提供的mysqldumpslow,使用很简单,参数可–help查看

# -s:排序方式。c , t , l , r 表示记录次数、时间、查询时间的多少、返回的记录数排序;
#                             ac , at , al , ar 表示相应的倒叙;
# -t:返回前面多少条的数据;
# -g:包含什么,大小写不敏感的;
mysqldumpslow -s r -t 10  /slowquery.log     #slow记录最多的10个语句
mysqldumpslow -s t -t 10 -g "left join"  /slowquery.log     #按照时间排序前10中含有"left join"的

推荐用分析日志工具 – mysqlsla

wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
tar zvxf mysqlsla-2.03.tar.gz
cd mysqlsla-2.03
perl Makefile.PL
make
make install
mysqlsla /data/mysqldata/slow.log
# mysqlsla会自动判断日志类型,为了方便可以建立一个配置文件“~/.mysqlsla”
# 在文件里写上:top=100,这样会打印出前100条结果。
【说明】
queries total: 总查询次数 unique:去重后的sql数量
sorted by : 输出报表的内容排序
最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.
Count, sql的执行次数及占总的slow log数量的百分比.
Time, 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.
95% of Time, 去除最快和最慢的sql, 覆盖率占95%的sql的执行时间.
Lock Time, 等待锁的时间.
95% of Lock , 95%的慢sql等待锁时间.
Rows sent, 结果行统计数量, 包括平均, 最小, 最大数量.
Rows examined, 扫描的行数量.
Database, 属于哪个数据库
Users, 哪个用户,IP, 占到所有用户执行的sql百分比
Query abstract, 抽象后的sql语句
Query sample, sql语句
时间: 2024-10-13 03:05:42

Mysql 慢查询和慢查询日志分析的相关文章

《Mycat学习笔记》 番外篇一.客户端使用latin1字符集,后端MySQL为UTF8字符集,MyCat日志分析。

其实这个番外篇比较无聊——即客户端为lantin字符集,后面MySQL为U8字符集,MyCat在中间到底会起什么作用. 再说下本次验证的环境: Mac OS 10.11.2 MySQL 5.6 MyCat 1.5 OK,开始我们的验证工作. 1) 由于数据库与操作系统已被默认设置为U8编码,计划通过修改Mysql  “character_set_client” 参数调整客户端字符集配置进行验证. 关于MYSQL字符集较全面的介绍,请参考 <mysql_query("set names gb

mysql慢查询日志分析工具mysqlsla

一.介绍    mysqlsla是一个分析mysql慢日志的工具,可以分析出慢查询的原因,包括执行某条sql出现的次数及在slow log数据的百分比.执行时间.等待销的时间等. 公司的数据库有很多慢查询日志,导致的系统的负载很高,而mysql慢查询日志文件内容格式不太好看,经推荐使用mysqlsla:使用方便,操作简单. 二.安装mysqlsla 系统环境 CentOS release 6.6 (Final) 2.6.32-504.el6.x86_64 官网已经不能下载,所需要的文件已在百度云

mysql慢查询日志分析工具使用

参考:  5种mysql日志分析工具比拼 http://blog.csdn.net/gzh0222/article/details/10384475 1.mysql-log-filter工具脚本使用说明: google code上找到的一个分析工具.提供了 python 和 php 两种可执行的脚本.http://code.google.com/p/mysql-log-filter/ (需要搬梯子爬墙),51cto下载链接: 使用方法:(这里只介绍python的使用方法) python mysq

mysql 慢查询日志分析

mysql慢查询: 慢查询相关的变量 slow_query_log:该参数控制着慢查询的状态, 1表示开启状态 ,0 表示关闭状态 slow_query_log_file:慢查询日志路径 long_query_time:最大查询阀值,查询的时间超过这个值就视为慢查询并且将其记录到慢查询日志中,慢查询日志路径 通过slow_query_log_file 这个变量设置 log_queries_not_using_indexes:没有使用到索引的查询语句是否记录到慢查询日志中. log_slow_sl

mysql慢查询日志切割,日志分析

#!/usr/bin/env python #coding:utf8 import os,sys import datetime,shutil,subprocess from config.config import slow_config class cut_mysql(object): mysql_user,mysql_pass,date_day,slow_log_name,slow_log_path,mysqlsla_log_name,mysqldumpslow_log_name,new_

Mysql 配置慢查询日志(SlowQueryLog)以及使用日志分析工具

[ 查看系统关于慢查询的设置 ] mysql> show variables like '%slow%'; +---------------------------+--------------------------------+ | Variable_name | Value | +---------------------------+--------------------------------+ | log_slow_admin_statements | OFF | | log_sl

MySQL慢查询(二) - pt-query-digest详解慢查询日志 pt-query-digest 慢日志分析

随笔 - 66 文章 - 0 评论 - 19 MySQL慢查询(二) - pt-query-digest详解慢查询日志 一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比等

关于MySQL 通用查询日志和慢查询日志分析

MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1)通用查询日志:记录建立的客户端连接和执行的语句. 2)慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询 (1)通用查询日志 在学习通用日志查询时,需要知道两个数据库中的常用命令: 1) showvariables like '%version%'; 效果图如下: 上述命令,显示当前数据库中与版本号相关的东西.

MySQL 通用查询日志和慢查询日志分析

MySQL中的日志包括:错误日志.二进制日志.通用查询日志.慢查询日志等等.这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志. 1)通用查询日志:记录建立的客户端连接和执行的语句.2)慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询 (1)通用查询日志 在学习通用日志查询时,需要知道两个数据库中的常用命令: 1) show variables like '%version%'; mysql> show variables like '%ve

记一次mysql慢查询日志分析

MySQL慢查询日志分析 分析工具mysqlsla的安装以及使用,mysqlsla是hackmysql.com推出的一款MySQL的日志分析工具,功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等. 在CentOS下安装mysqlsla yum install perl-DBI perl-DBD-MySQL perl-devel -y #安装依赖包 wget ftp://ftp.tw.freebsd.org/pub/distfiles/mysqlsla-