`

(转)Mysql 慢日志优化分析方法

 
阅读更多
mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql启动的时候加入一些参数。
如果在my.cnf里面修改,需增加如下几行
long_query_time = 10
log-slow-queries =
long_query_time 是指执行超过多久的sql会被log下来,这里是10秒。
log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log    如果设置了参数log-long-format,那么所有没有使用索引的查询也将被记录。在文件my.cnf或my.ini中加入下面这一行可以记录这些查询
这是一个有用的日志。它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失了索引或索引没有得到最佳应用)
# Time: 070927  8:08:52# User@Host: root[root] @  [192.168.0.20]# Query_time: 372  Lock_time: 136  Rows_sent: 152  Rows_examined: 263630
select id, name from manager where id in (66,10135);
这是慢查询日志中的一条,用了372秒,锁了136秒,返回152行,一共查了263630行
如果日志内容很多,用眼睛一条一条去看会累死,mysql自带了分析的工具,使用方法如下:
命令行下,进入mysql/bin目录,输入mysqldumpslow –help或–help可以看到这个工具的参数,主要有
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
Parse and summarize the MySQL slow query log. Options are
  –verbose    verbose
  –debug      debug
  –help       write this text to standard output
  -v           verbose
  -d           debug
  -s ORDER     what to sort by (t, at, l, al, r, ar etc), ‘at’ is default
  -r           reverse the sort order (largest last instead of first)
  -t NUM       just show the top n queries
  -a           don’t abstract all numbers to N and strings to ‘S’
  -n NUM       abstract numbers with at least n digits within names
  -g PATTERN   grep: only consider stmts that include this string
  -h HOSTNAME  hostname of db server for *-slow.log filename (can be wildcard),
               default is ‘*’, i.e. match all
  -i NAME      name of server instance (if using mysql.server startup scrīpt)
  -l           don’t subtract lock time from total time
-s,是order的顺序,说明写的不够详细,俺用下来,包括看了代码,主要有
c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙
-t,是top n的意思,即为返回前面多少条的数据
-g,后边可以写一个正则匹配模式,大小写不敏感的
mysqldumpslow -s c -t 20 host-slow.log
mysqldumpslow -s r -t 20 host-slow.log
上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。
mysqldumpslow -t 10 -s t -g “left join” host-slow.log
这个是按照时间返回前10条里面含有左连接的sql语句。。。
分享到:
评论

相关推荐

    mysql慢日志分析工具mysqlsla

    MySQLsla是一款专为MySQL数据库设计的慢查询日志分析工具,它可以帮助数据库管理员高效地分析和理解MySQL服务器上的慢查询情况,从而优化数据库性能。在MySQL的运行过程中,某些SQL语句执行时间过长,就会被记录到慢...

    mysql慢查询日志的使用

    MySQL慢查询日志是MySQL提供的一种日志记录方式,用于记录所有执行时间超过指定阈值(默认10秒)的SQL语句,帮助开发者和DBA定位数据库性能瓶颈,优化SQL查询效率。 #### 开启与配置 1. **开启慢查询日志:** - ...

    MySQL慢查询日志:性能分析的利器

    通过使用MySQL的慢查询日志,我们可以有效地进行数据库性能分析和优化。本文详细介绍了如何启用慢查询日志、存储和访问日志文件、分析日志内容以及优化查询语句。记住,持续的性能分析和优化是确保数据库高效运行的...

    MySQL性能优化 SQL优化方法技巧

    ### MySQL性能优化与SQL优化方法技巧 #### 一、引言 MySQL作为一款广泛使用的开源关系型数据库管理系统,其性能优化对于确保应用系统的稳定性和高效运行至关重要。通过对MySQL的优化,不仅能提升系统的响应速度,还...

    mysql性能优化-慢查询分析、优化索引和配置.doc

    - 开启慢查询日志的方法有两种:一种是在MySQL配置文件`my.cnf`或`my.ini`中添加相关参数;另一种是通过命令行动态设置。 配置示例: ```ini [mysqld] log-slow-queries = /data/mysqldata/slow-query.log ...

    db转mysql数据库转换

    2. **表结构迁移**:转换工具会分析DB数据库的表结构,并在MySQL中重建它。这包括字段名、字段类型、主键、外键、索引等。 3. **数据迁移**:除了结构,工具还需要处理数据的迁移。这可能涉及到数据类型转换、编码...

    mysql优化笔记+资料

    2. 使用Percona Toolkit和pt-query-digest分析慢查询日志。 3. 使用MySQL Tuner或mytop等工具自动或手动调整MySQL服务器参数。 这些笔记涵盖了MySQL优化的主要方面,包括查询优化、SQL编写技巧、数据库设计、存储...

    MySQL性能分析与优化调整

    1. **慢查询日志**:MySQL提供慢查询日志功能,记录执行时间超过设定阈值的SQL语句,这是识别性能瓶颈的起点。 2. **EXPLAIN分析**:通过在SQL语句前添加`EXPLAIN`关键字,可以查看查询执行计划,分析表扫描方式、...

    MySQL慢查询日志.docx

    MySQL的慢查询日志是数据库管理员用于识别...总之,MySQL慢查询日志是数据库性能调优的重要入口,通过分析并优化慢查询,可以有效地提升系统的整体性能。在日常运维中,定期检查和处理慢查询日志是一项必不可少的工作。

    mysql数据库性能优化

    - **作用**:通过分析慢查询日志,可以找到性能瓶颈并进行优化。 ##### 2. 查询缓存 - **概念**:MySQL提供了一个查询缓存机制,用于缓存查询结果。 - **优缺点**:查询缓存可以提高查询性能,但在数据频繁变动的...

    MySQL性能优化和高可用架构实践.pptx

    本书详细描述了优化过程中的关键步骤和方法,例如:分析慢查询日志、制定优化计划、调整配置参数等。还介绍了作者在实践中积累的宝贵经验,为读者提供实用的参考。 经验教训 本书总结了在优化MySQL性能和高可用...

    MySql优化.pdf

    MySQL的慢查询日志(slow query log)功能是优化过程中的关键工具。通过它可以记录那些执行时间超过预设阈值的查询语句,这些就是慢查询。例如,在***f配置文件中可以设置log-slow-queries,以及slow_query_log_...

    MySQL开启慢查询日志功能的方法

    总之,MySQL慢查询日志功能是数据库性能优化的重要工具,通过对慢查询日志的分析,可以找出影响数据库性能的关键因素,并通过相应的优化手段提升数据库性能,这对于保障数据库应用的稳定运行具有重要意义。...

    (mysql面试题)MySQL中的慢查询日志的作用及其使用方法及代码展示.txt

    1. **发现性能瓶颈**:通过对慢查询日志的分析,可以快速定位到执行效率较低的SQL语句,进而深入分析其原因,如表设计不合理、索引缺失或不恰当等,从而针对性地优化数据库结构和SQL语句本身,提升整体系统的响应...

    mysql数据库优化

    在MySQL数据库管理与优化的过程中,慢查询日志是一项非常重要的工具,它可以帮助我们诊断并优化那些执行时间过长的SQL语句。通过设置慢查询日志,可以记录下所有运行时间超过设定阈值的SQL语句。通常情况下,我们将...

    MySQL中按时间获取慢日志信息的方法

    今天处理一个case: 数据库异常,连接数突增。...想着分析一下慢日志,可是一看慢日志都好几G了,而且是短日志格式,找到那个时间点相对比较难。于是写了一个脚本从慢日志按时间提取点日志。脚本: ...

    Mysql优化方法介绍.ppt

    MySQL 优化方法主要涵盖存储引擎的选择、字段类型的设计、索引的应用及操作,以及SQL语句的优化。这些方面对于提升数据库性能至关重要。 首先,存储引擎是MySQL中数据存储的关键技术,不同引擎有不同的特性和优势。...

Global site tag (gtag.js) - Google Analytics