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提供的一种日志记录方式,用于记录所有执行时间超过指定阈值(默认10秒)的SQL语句,帮助开发者和DBA定位数据库性能瓶颈,优化SQL查询效率。 #### ...
### MySQL慢查询日志详解 #### 一、慢查询日志概述 MySQL慢查询日志是一种重要的工具,用于记录执行时间超过预设阈值的SQL语句。通过对这些记录进行分析,可以找出数据库中的性能瓶颈,并据此采取相应的优化措施。...
MySQLsla是一款专为MySQL数据库设计的慢查询日志分析工具,它可以帮助数据库管理员高效地分析和理解MySQL服务器上的慢查询情况,从而优化数据库性能。在MySQL的运行过程中,某些SQL语句执行时间过长,就会被记录到慢...
### MySQL慢查询日志详解 #### 一、慢查询日志简介 MySQL慢查询日志是一种重要的工具,用于记录执行时间超过指定阈值的SQL语句。这些记录可以帮助数据库管理员和开发人员识别并优化那些效率较低的查询,从而提高...
描述:本文对五款常用的MySQL慢查询日志分析工具进行深入解析,旨在帮助DBA、开发者和运维人员更有效地定位和优化数据库性能瓶颈。 ### MySQL Slow Log概念 MySQL慢查询日志(Slow Query Log)是一种用于记录执行...
首先,要了解MySQL慢查询日志的概念。慢查询日志记录了所有执行时间超过`long_query_time`值的SQL语句。默认情况下,`long_query_time`的值设置为10秒,意味着所有运行时间超过10秒的SQL语句都会被记录下来。然而,...
### MySQL慢查询日志:性能分析的利器 #### 一、引言:慢查询日志的重要性 在数据库管理中,性能分析是一个至关重要的过程。随着业务的发展和数据量的增长,数据库面临的压力也在不断增加,这就需要我们不断寻找...
MySQL 的慢日志配置查询和 Show Processlist 使用 MySQL 的慢日志配置查询和 Show Processlist 使用是 MySQL 中两个非常重要的概念,它们都是用于优化和 Troubleshooting MySQL 性能的关键工具。在这篇文章中,我们...
总之,理解并有效地使用MySQL的通用查询日志和慢查询日志是数据库性能监控和调优的关键步骤。通过对日志的分析,我们可以识别潜在的性能问题,进而采取措施优化数据库,提升服务质量和用户体验。
MySQL的慢查询日志是数据库管理员用于识别...总之,MySQL慢查询日志是数据库性能调优的重要入口,通过分析并优化慢查询,可以有效地提升系统的整体性能。在日常运维中,定期检查和处理慢查询日志是一项必不可少的工作。
"mysql慢查询日志分析.txt" 提供了关于识别和优化慢查询的方法。MySQL的慢查询日志功能可以记录执行时间超过特定阈值的SQL语句,帮助开发者找出性能瓶颈。分析这些日志可以揭示数据库设计问题、索引不足或者不合适...
mysql的slow_query_log慢查询日志分析工具说明,主要用来进行慢查询日志的linux平台分析输出结果文档进行MySQL的调优/优化数据库
"cpp-Slowquery图形化显示MySQL慢日志工具" 指的是一款基于C++语言开发的工具,名为Slowquery,它的主要功能是解析并以图形化方式展示MySQL数据库的慢查询日志。这个工具帮助数据库管理员更直观地理解和分析MySQL...
总结一下,MySQL慢查询日志分析主要包括以下步骤: 1. 检查慢查询日志是否启用,并了解其配置。 2. 使用`pt-query-digest`工具分析日志,生成性能报告。 3. 通过Query-Digest-UI将分析结果可视化,方便进一步研究和...
MySQL的慢查询日志是数据库管理员用来诊断性能问题的重要工具,尤其在处理线上服务时,对SQL查询效率的要求更为严格。本文将详细讲解如何利用慢查询日志来优化线上MySQL数据库的性能,并介绍相关的操作步骤和命令。 ...
总结来说,MySQL 慢查询页面工具 Query-Digest-UI 是一个基于 Percona Toolkit 的图形化监控解决方案,它帮助管理员可视化 MySQL 的慢查询日志,从而更有效地进行性能调优。通过安装和配置该工具,你可以实时监控...
MySQL慢查询日志是数据库管理员用来追踪和优化性能的关键工具。它记录那些执行时间超过预设阈值的查询,帮助找出系统中的性能瓶颈。在本教程中,我们将详细介绍如何配置和使用MySQL慢查询日志。 首先,开启慢查询...