`

Mysql 慢查询 分析

阅读更多

原文链接:http://bbs.linuxtone.org/thread-813-1-1.html IT运维专家网--"自由平等,互助分享!"

 

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慢查询日志查看

    Mysql 慢查询日志查看是指在 Mysql 数据库中,记录和分析执行时间较长的查询语句,以便优化数据库性能和提高查询效率。慢查询日志查看可以帮助数据库管理员和开发者快速地定位和优化数据库中的性能瓶颈。 一、慢...

    mysql慢查询日志的使用

    通过合理配置和使用MySQL慢查询日志及其相关的分析工具,可以有效地定位和解决数据库性能问题,提高系统的整体性能和稳定性。需要注意的是,在生产环境中使用慢查询日志时,应根据实际情况适度调整相关参数,避免因...

    mysql慢日志分析工具mysqlsla

    5. **时间分布**:分析查询在一天中的执行频率,找出高峰期和低谷期。 6. **用户和主机统计**:统计哪些用户或主机执行了最多的慢查询。 在实际使用中,MySQLsla的输出结果通常包括查询的执行时间百分比图、执行...

    mysql 慢查询页面工具

    总结来说,MySQL 慢查询页面工具 Query-Digest-UI 是一个基于 Percona Toolkit 的图形化监控解决方案,它帮助管理员可视化 MySQL 的慢查询日志,从而更有效地进行性能调优。通过安装和配置该工具,你可以实时监控...

    MySQL慢查询日志

    ### MySQL慢查询日志详解 #### 一、慢查询日志概述 MySQL慢查询日志是一种重要的工具,用于记录执行时间超过预设阈值的SQL语句。通过对这些记录进行分析,可以找出数据库中的性能瓶颈,并据此采取相应的优化措施。...

    mysql慢日志查询

    ### MySQL慢查询日志详解 #### 一、慢查询日志简介 MySQL慢查询日志是一种重要的工具,用于记录执行时间超过指定阈值的SQL语句。这些记录可以帮助数据库管理员和开发人员识别并优化那些效率较低的查询,从而提高...

    MySQL优化篇:慢查询日志.pdf

    首先,要了解MySQL慢查询日志的概念。慢查询日志记录了所有执行时间超过`long_query_time`值的SQL语句。默认情况下,`long_query_time`的值设置为10秒,意味着所有运行时间超过10秒的SQL语句都会被记录下来。然而,...

    mysql查询分析器

    2. **执行查询**:用户可以运行SQL语句,查看结果集,分析查询性能。对于多行查询,可以一次性执行,节省时间。 3. **数据库设计**:支持数据库模式的可视化设计,包括创建、修改和删除表、视图、索引等数据库对象...

    mysql慢查询工具Anemometer

    MySQL的慢查询日志是数据库...总的来说,Anemometer作为MySQL慢查询工具,提供了一种有效监控和诊断数据库性能的方式。通过深入理解和充分利用这个工具,数据库管理员能够及时发现并解决性能问题,提升系统的整体效率。

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

    ### MySQL慢查询日志:性能分析的利器 #### 一、引言:慢查询日志的重要性 在数据库管理中,性能分析是一个至关重要的过程。随着业务的发展和数据量的增长,数据库面临的压力也在不断增加,这就需要我们不断寻找...

    MySQL慢查询相关知识

    ### MySQL慢查询相关知识 #### 一、概览 MySQL慢查询是指那些执行时间超过预设阈值的SQL语句。这些慢查询不仅会降低数据库性能,还可能导致用户体验下降。因此,了解如何诊断和优化慢查询是每个DBA或开发人员必备...

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

    - **使用EXPLAIN分析查询**:通过`EXPLAIN`命令来分析SQL查询的执行计划,找出可能导致性能问题的因素,例如全表扫描、不使用索引等情况。 #### 三、配置优化 针对MySQL服务器的性能调优,还需要关注一系列的配置...

    五款常用mysql slow log分析工具

    描述:本文对五款常用的MySQL慢查询日志分析工具进行深入解析,旨在帮助DBA、开发者和运维人员更有效地定位和优化数据库性能瓶颈。 ### MySQL Slow Log概念 MySQL慢查询日志(Slow Query Log)是一种用于记录执行...

    MySQL的基本介绍及优化实践.pptx

    #### 一、MySQL慢查询分析平台 - **平台介绍**:MySQL慢查询分析平台(http://slow-query.mryitao.cn)是一个专门用于监控和分析MySQL慢查询的工具,可以帮助数据库管理员快速定位并解决慢查询问题。 - **功能概述*...

    mysql的慢日志配置查询和show processlist使用

    通过分析慢查询日志,我们可以找到 MySQL 中执行时间最长的 SQL 语句,并对其进行优化,从而提高 MySQL 的性能。 在上面的例子中,我们手动触发了两个慢查询,一个是 11 秒的慢查询,另一个是 20 秒的慢查询。然后...

    二、mysql优化技术-定位慢查询

    这篇博文可能详细介绍了如何诊断和解决MySQL中的慢查询问题,而`sql.txt`文件很可能包含了一些示例SQL语句或者慢查询日志。 慢查询通常是由于不恰当的索引使用、过度的数据扫描、复杂的查询逻辑或是资源争抢等原因...

    mysql 慢查询

    ### MySQL慢查询详解 #### 一、什么是慢查询 慢查询是MySQL中一种重要的性能调试手段,主要用于记录那些执行时间过长的SQL语句。慢查询日志可以帮助我们找到那些性能不佳的SQL语句,从而对其进行优化。默认情况下...

    MySQL慢查询日志.docx

    4. **使用EXPLAIN分析查询计划**:`EXPLAIN`关键字可以显示MySQL如何执行SQL语句,帮助我们找出潜在的性能问题。 5. **合理设计数据库结构和数据类型**:选择合适的数据类型,避免冗余数据,设计合理的数据库模式。 ...

Global site tag (gtag.js) - Google Analytics