(linux mysql)需要统计一个慢查询日志的 频繁使用的sql 语句 。 (统计其次数 不计较查询时间)
这个慢查询日志好大, 大概1g多,所以我用tail语句截取70万条数据进行分析现在想探讨有没有工具或者方法能够让里面相同的sql语句能统计出次数来 ? (用linux命令也可以的 拉 )
这个慢查询日志好大, 大概1g多,所以我用tail语句截取70万条数据进行分析现在想探讨有没有工具或者方法能够让里面相同的sql语句能统计出次数来 ? (用linux命令也可以的 拉 )
调试欢乐多
从http://hackmysql.com/mysqlsla下载mysqlsla,当前最新版为:2.03tar zxvf mysqlsla-2.03.tar.gz
cp mysqlsla-2.03/bin/mysqlsla /usr/local/bin
如果提示“Can’t locate DBI.pm”,执行以下命令yum install perl-DBI perl-DBD-MySQL -y
这时就可以运用 mysqlsla了,用法如下mysqlsla -lt slow slow.logmysqlsla整体来说, 功能非常强大. 数据报表,非常有利于分析慢查询的原由 , 包括执行频率, 数据量, 查询消耗等.
格式说明如下:
总查询次数 (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语句可惜还不是最理想 太粗不够精细
我只能通过 linux的明命令手工处理