Difference between revisions of "Top MySQL Slow Queries from log"
From James Dooley's Wiki
(→Display 2 lines before/after Query_time) |
(→Display 2 lines before and 3 lines after Query_time | less) |
||
| Line 13: | Line 13: | ||
===Display 2 lines before and 3 lines after Query_time | less=== | ===Display 2 lines before and 3 lines after Query_time | less=== | ||
<code>[bash,n] | <code>[bash,n] | ||
| − | for i in $(grep -n Query_time | + | slowlog=`grep log-slow-queries /etc/my.cnf | cut -d'=' -f2`; \ |
| + | if [ -e "$slowlog" ]; then \ | ||
| + | for i in $(grep -n Query_time $slowlog | sort -k3 -nr | head | cut -d: -f1); do line=`sed -n \`echo $i\`p $slowlog`; grep -B2 -A3 "$line" $slowlog;done \ | ||
| + | fi | less | ||
</code> | </code> | ||
Revision as of 14:35, 15 September 2011
Contents
Overview
Sort the slow query log based on the query time and display the lines after it
Script
Display 2 lines before/after Query_time
[bash,n]
slowlog=`grep log-slow-queries /etc/my.cnf | cut -d'=' -f2`; \
if [ -e "$slowlog" ]; then \
for i in $(grep -n Query_time $slowlog | sort -k3 -nr | head | cut -d: -f1); do line=`sed -n \`echo $i\`p $slowlog`; grep -B2 -A2 "$line" $slowlog;done; \
fi
Display 2 lines before and 3 lines after Query_time | less
[bash,n]
slowlog=`grep log-slow-queries /etc/my.cnf | cut -d'=' -f2`; \
if [ -e "$slowlog" ]; then \
for i in $(grep -n Query_time $slowlog | sort -k3 -nr | head | cut -d: -f1); do line=`sed -n \`echo $i\`p $slowlog`; grep -B2 -A3 "$line" $slowlog;done \
fi | less