Mysql慢速查询日志

是他们的任何方式来特别从/var/log/mysql/mysql-slow.log文件过滤MySQL慢速查询数据库。 我有一个MySQL服务器与5个实时数据库。 我正试图优化这个服务器。

另外我想知道什么是优化MySQL服务器的最佳做法。

我的设置是:

 log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 5 log-queries-not-using-indexes 

 mysqldumpslow /var/log/mysql/mysql-slow.log 

这将给你一个不同的缓慢和非索引查询的列表,按查询的运行次数sorting,最重要的是sorting。 对每个日志运行该查询,如果查询执行时间小于您的缓慢时间(5),那么这是一个非索引查询。

希望这有助于某人。

我没有一个慢查询日志看,所以我不能够自己testing,但你可能要看看像mysql-log-filter

这是一个PHP脚本,将parsingMySQL慢查询日志,它提供了很多不同的选项。 也许可以让你得到你需要的信息,或者至less靠近。 值得一试!

我发现一个很好的实用程序mysqlslaparsing缓慢的查询日志或过滤数据库。 http://hackmysql.com/mysqlsla

我们也可以使用这个bash脚本来定制慢查询和生成报告。 该脚本使用实用程序mysqlsla。

 #!/bin/bash # Script to process multiple mysql slow logs # using mysqlsla http://hackmysql.com/mysqlsla # Directory containing slow logs sl_dir="/home/rhys/Desktop/slow_logs"; cd "$sl_dir"; #slow_logs=$(ls "$sl_dir"); # Folder for reports if [ ! -d "$sl_dir"/reports ]; then mkdir "$sl_dir"/reports; fi # process each slow log file for file in "$sl_dir"/* do echo "Processing file: $file"; filename=$(basename "$file") mysqlsla -lt slow "$file" > "reports/$filename.rpt"; echo "Finished processing file: $file"; done 

这个脚本给出了比mysqldumpslow更清晰的输出:

https://github.com/LeeKemp/mysql-slow-query-log-parser/