- 浏览: 245740 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
nodonkey:
貌似还是不行,再等等吧,amfphp要出2.0了
amfphp1.9与php5.3.X版本不兼容 -
live711:
请问amfphp与php5.3.X搭配能用了吗?
amfphp1.9与php5.3.X版本不兼容 -
zhousheng193:
非常感谢!
安装flash player debug版本遇到的一些问题 -
sp42:
谢谢提示,我遇到的也是不能加密,用MAC地址代替之。
DI-624+A路由器韧体升级解决经常掉线的问题(转) -
心似海:
不错,要挖去了,哈哈
深入sql之merge into
— Slow log: mysqlsla -lt slow slow.log — General log: mysqlsla -lt general general.log — Binary log: mysqlbinlog bin.log | mysqlsla -lt binary hackmysql.com推出的一款MySQL的日志分析工具 大致上来说,MySQL 提供三大类的 LOG: 1. Binary Log:记录所有对于数据库的修改操作 官方网站: http://hackmysql.com/ Log 分析步骤: 1. 开启 MySQL Server 的 General Log 与 Slow Log 一、开启 MySQL Server 的 General Log 与 Slow Log A. 分析 General Log mysqlsla -lt slow slow.log -R print-unique -mf "db=foo" -sf "+SELECT" B. 分析 Slow Log 引用: --ex: 使用 EXPLAIN 分析 Query --db 数据库名称:Slow Log 不一定会记录 Query 所属的 Database,这样一来当 Server 要进行 EXPLAIN 时会有问题,因此在这里我们自己指定所使用的 Database。 slow-log: 这里要填入 slow-log 文件名称,若有多个 Log 档案请使用逗号分隔,例如 log1,log2...。 所产生的范例报表如下:(mysqlsla 预设只会列出 Top 10 Query) Query abstract: Query sample: ______________________________________________________________________ 002 ___ Query abstract: Query sample: ______________________________________________________________________ 003 ___ Count : 104 (0.62%) Query abstract: Query sample: 有了这些信息后,下一步就是要进行 Query 的最佳化,与 Server 系统参数的调校。
整体来说, 功能非常强大. 数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等.
格式说明如下:
总查询次数 (queries total), 去重后的sql数量 (unique)
输出报表的内容排序(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语句
除了以上的输出, 官方还提供了很多定制化参数, 是一款不可多得的好工具.
在之前的文章中已有提过如何利用 mysqlreport 这套工具来掌握 MySQL 目前的运作状况(MySQL 效能监控工具--mysqlreport),它可以协助我们了解 MySQL Server 的健康状况以及 MySQL Server 大部份时间在处理什么类型的 Query,但还有一个关键的问题没有回答,就是在那些特定类型的 Query 中,MySQL 实际上到底是把 CPU 运算时间花在哪些 Query 上?若想要回答这个问题就必须要分析 MySQL 的 Log 才能得知。
2. General Log:记录所有 Client 发送到 Server 的 Query
3. Slow Log:记录所有的 Slow Query
藉由分析 General Log,我们可以清楚的得知 MySQL Server 最常执行的 Query 有哪些;观察 Slow Log 则可以让我们得知到底是哪些 Query 造成 MySQL Server 效能低落。知道了这些信息以后我们才有办法对 MySQL Server 进行进一步的调整与最佳化,例如以适当的 Index 提高 MySQL 最常执行的 Query 的效率,或是去除造成 Slow Query 的成因(poor index, join...等)。视您的 MySQL Server 的忙录状态而定,您的 General Log(或 Slow Log) 有可能会非常的庞大,要以肉眼来分析是一项不可能的任务,比较实际的作法是自己撰写 Scripts 去进行 Log 分析。若您不想花时间自行开发程序,不妨试试由 Daniel Nichter 所提供的 mysqlsla。
软件下载: http://hackmysql.com/mysqlsla
2. 以 mysqlsla 分析 Log 档案
3. 解读报表
MySQL Server Log 分析
要分析 Log 档案之前,你当然要先有可以分析的 Log 档案。要开启 MySQL Server 的 General Log 与 Slow Log,需要修改 MySQL Server 的系统设定文件并重新启动 MySQL。
引用:
/etc/my.cnf:
[mysqld]
log=general-log
log-slow-queries=slow-log
二、以 mysqlsla 分析 Log 档案
mysqlsla 其实是一支 Perl Scripts,使用方式很间单,语法如下:
然后您就可以大致上了解 Server 都在处理些什么东西。
mysqlsla --user=root --password=bjzayh -ex --socket=/tmp/mysql.sock -lt slow slow.log
mysqlsla --user=root --password=bjzayh -ex --socket=/tmp/mysql.sock -lt general /data/mysql/test.log
引用:
--slow: 表示要分析的是 Slow Log
[root@test mysql]# mysqlsla --user=root --password=bjzayh -ex --socket=/tmp/mysql.sock -lt general /data/mysql/test.log
Report for general logs: /data/mysql/test.log
16.75k queries total, 519 unique
Sorted by 'c_sum'
______________________________________________________________________ 001 ___
Count : 5.63k (33.63%)
Connection ID : 281
Database :
Users :
root@192.168.0.145 : 65.15% (3670) of query, 24.05% (4028) of all users
@ : 20.22% (1139) of query, 6.84% (1145) of all users
root@192.168.0.55 : 14.52% (818) of query, 5.67% (950) of all users
root@localhost : 0.11% (6) of query, 5.91% (990) of all users
EXPLAIN : Not a SELECT statement
SET autocommit=N
SET autocommit=1
Count : 2.92k (17.43%)
Connection ID : 424
Database : cacti
Users :
cacti@localhost : 100.00% (2920) of query, 57.46% (9625) of all users
EXPLAIN : Not a SELECT statement
INSERT INTO poller_output (local_data_id, rrd_name, time, output) VALUES (N, 'S', 'S', 'S')1
insert into poller_output (local_data_id, rrd_name, time, output) values (8, 'users', '2009-03-10 10:30:01', '1')
Connection ID : 509
Database :
Users :
root@localhost : 99.04% (103) of query, 5.91% (990) of all users
root@192.168.0.35 : 0.96% (1) of query, 0.08% (13) of all users
EXPLAIN : Not a SELECT statement
USE cacti
use `cacti`
[root@test mysql]#
发表评论
-
alter table move 与shrink space的区别
2012-03-06 13:51 2235转自:http://hi.baidu.co ... -
六款常用mysql slow log分析工具的比较
2011-01-17 19:06 1275转自:http://www.iteye.com/topi ... -
MySQL的大小写敏感性
2011-01-12 14:05 1053转自: http://www.zeali.net/ent ... -
如何查看mysql的版本
2010-05-22 11:52 22028如果我们想要查看mysql数据库的版本有以下四种方法: ... -
MySQL 数据库的备份和恢复
2010-03-19 13:44 922转自 忧里修斯 http://tec ... -
mysql使用show命令以及replace函数批量修改数据
2010-03-19 13:37 2409一.mysql的show命令 a. show tables或 ... -
MySQL中的ROWNUM的实现
2010-01-26 13:43 2200本文转自 http://blog.csdn.net/ACMA ... -
一个MySQL死锁问题的分析及解决
2010-01-20 12:50 1254转自http://java-guru.iteye.com/bl ... -
MySQL 死锁分析
2010-01-20 12:42 33381.MySQL锁和死锁的理解: ... -
sql 按指定顺序排序
2010-01-19 10:53 21771、在ORACLE中使用Decode Decode实 ... -
MYSQL 事务管理
2009-10-26 19:48 1058mysql_query("BEGIN"); ... -
delete 符合条件的记录中的前几条或者重复记录
2009-09-03 20:04 2069今天写代码,遇到了这个问题,只能删除符合条件的记录中的某几条. ... -
sql update delete 中 使用 inner join
2009-08-24 11:38 7193SQL中使用update inner join和delet ... -
What is the difference between VARCHAR, VARCHAR2 ?
2009-06-01 09:43 928Both CHAR and VARCHAR2 types ar ... -
Oracle index
2009-05-15 10:50 0索引是一种可以提高查 ... -
Views and Materialized Views 整理
2009-04-10 14:29 1140Views and Mat ... -
IN and EXISTS, NOT IN AND NOT EXISTS
2009-04-10 14:28 1434Functionally, they are the same ... -
ORACLE 之 TRUNCATE TABLE
2009-03-30 16:49 1982TRUNCATE Caution: Y ... -
深入sql之merge into
2009-01-08 16:38 4777转自 逆水流沙 http://hi.baidu.com/wen ... -
Oracle日期函数操作(收集整理版)
2008-12-04 16:50 2789经常在平时的开发中要用到oracle的日期函数,每次都要上 ...
相关推荐
总的来说,MySQLsla是数据库性能调优的重要工具,通过对慢查询日志的深入分析,能够有效地提升MySQL数据库的运行效率,降低系统的响应时间,提高用户体验。在使用过程中,结合`mysqlsla-2.03.tar.tar`的源代码、`...
总结来说,MySQLSLA是一款强大的MySQL慢查询日志分析工具,它提供了比官方`mysqldumpslow`更多的功能和更灵活的分析方式,对于数据库管理员来说,是提高工作效率、优化数据库性能的得力助手。如果你在处理数据库性能...
通过以上内容,我们可以看到MySQLsla在MySQL日志分析中的重要性,它为数据库管理员提供了一种有效工具来监控和优化数据库性能。正确理解和使用MySQLsla,可以帮助我们更好地管理MySQL数据库,避免因慢查询导致的性能...
MySQL性能分析及explain的应用实践 MySQL性能分析是数据库优化的重要步骤,explain语句是MySQL性能分析的重要工具。explain语句可以帮助开发者和数据库管理员了解 MySQL 的查询执行计划,从而优化查询性能。 1. ...
"mysqlsla2.03" 提供了一种有效的方式来分析和优化MySQL的慢查询日志,帮助我们找出性能瓶颈,提升数据库效率。 慢查询日志是MySQL提供的一种功能,用于记录执行时间超过指定阈值的SQL查询,这有助于我们识别那些...
MySQLSLA(MySQL Slow Log Analyzer)是用于分析MySQL数据库慢查询日志的工具,它能够帮助DBA(数据库管理员)优化数据库性能。标题中的“mysqlsla-2.0.3”指的是该软件的特定版本,2.0.3,这通常意味着它包含了前一...
总之,MySQLsla是一款强大的MySQL慢查询分析工具,它提供了一种有效的方式来监控和优化数据库性能,对于数据库管理员来说,它是日常维护和性能调优的重要助手。通过熟练掌握其使用方法,可以显著提升数据库系统的...
8. **性能监控与调优工具**:MySQL提供了许多工具,如mysqldumpslow用于分析慢查询日志,以及mysqladmin和mysqlsla等用于监控性能。学习如何使用这些工具可以帮助识别和解决性能瓶颈。 9. **数据库维护**:定期的...
3.性能监视器:了解如何利用pt-query-digest、mysqlsla等工具分析性能问题。 七、其他进阶主题 1. 视图与存储过程:深入理解视图的创建和使用,以及存储过程的编写和调用。 2. 触发器与事件调度:学习如何使用...
另外,利用数据库的性能分析工具,比如mysqlsla或者第三方工具如Percona toolkit等,可以帮助开发和运维人员发现和解决数据库性能瓶颈。 最后,对于MySQL的配置,也需要根据实际情况进行优化,比如合理设置缓冲池...
5. 第三方查询工具如pt-query-digest和mysqlsla:这些工具提供了更高级的查询分析和性能调优功能,例如pt-query-digest是Percona Toolkit的一部分,非常适合在Linux环境下进行数据库性能分析。 了解和熟练运用这些...
通过合理配置和使用MySQL慢查询日志及其相关的分析工具,可以有效地定位和解决数据库性能问题,提高系统的整体性能和稳定性。需要注意的是,在生产环境中使用慢查询日志时,应根据实际情况适度调整相关参数,避免因...
另外,mysqlsla工具可以帮助分析复制延迟和其他性能问题。 8. **安装过程** 提到的"mysql5.7.22.1.msi"是一个Windows平台的安装程序。在安装前,确保旧版本的MySQL已卸载干净,以免出现冲突。安装过程中,可以定制...
### MySQL优化:从需求到实践 #### 需求来源:为什么进行MySQL优化? ...通过以上步骤,可以从不同的角度深入理解MySQL系统的性能状况,并采取相应的优化措施,从而提高系统的整体性能和稳定性。
在没有索引或者索引使用不当的情况下,查询效率可能会大大降低,因此,分析`EXPLAIN`结果是判断是否需要创建或调整索引的重要依据。 对于慢查询日志的管理,通常需要每天进行分析。可以借助`mysqlsla`工具,它能对...
- **mysqlsla**:监控 MySQL 服务器的响应时间和延迟。 #### 三、性能优化 **重置统计信息** - **全局统计信息**:定期清除统计数据以减少内存占用。 - **DNS 连接**:优化 DNS 缓存服务器以减少域名解析时间。 ...