mysqlbinlog headers sorted by event time

mysqlbinlog <logfiles> | grep exec | grep end_log_pos | grep -v exec_time=0 | sed 's/^\(.*exec_time=\([0-9]\+\).*\)/\2 - \1 /' | sort -n
Shows sorted by query time, the headers of mysqlbinlog entries. Then is easy to locate the heavier events on the raw log dump
Sample Output
1 - #120528 21:55:39 server id 1  end_log_pos 10474343      Query   thread_id=2446084       exec_time=1     error_code=0
15 - #120528 21:55:17 server id 1  end_log_pos 10473569      Query   thread_id=2446071       exec_time=15    error_code=0
22 - #120528 21:55:17 server id 1  end_log_pos 10474905      Query   thread_id=2446084       exec_time=22    error_code=0

By: theist
2012-05-30 09:38:02

What Others Think

multiple greps, better to use grep -E
grep · 532 weeks and 1 day ago
erm -e
grep · 532 weeks and 1 day ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this? is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands

Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.


Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: