Over the past few years I have found that "pager" inside of MySQL is a really useful tool. I have come up with a few simple, but extremely effective, ways to use it.
-- Example 1
Lets say you have a MySQL server that is really busy with extremely long queries. You run a “show full processlist” and everything going on streams before your eyes, new lines and all. A more readable way to see what is going on is…
Mysql> pager less –S
By running the above statement the full processlist will NOT appear in the traditional, word wrapped format. The output will show in a very readable, right extended, format. All you need to do now figure out what is going on.
Here is a helpful hint. Set a tee file for MySQL client output.
Mysql> \\\\T /location/to/file.txt
Then, make sure pager is set to “less –S”. From there you can get out of the MySQL client and write a shell script to sort or do whatever to the file.
-- Example 2
Lets say you’re the DBA that is responsible to ensure that all of NEW MySQL SQL statement are functionally equivalent. Or, lets say that you are responsible for optimizing NEW SQL and to ensure that is hold integrity from the old version to the new version. You might say, “is an easy way to tell if you have an exact data set match or not?’ Well, yeppers, there is! All you need to do is use “pager”.
Mysql> pager md5sum
Then run the OLD SQL statement, gather the md5sum, then run the NEW and improved SQL and gather the md5sum. If both are the same then both datasets returned in either SQL statement are exact. Below is an example with the world database, just to illustrate the point.
mysql> select * from City as c, Country ct where c.countrycode = ct.code;
3c8c6b8331c9270f8565edd1a8b8d7a5 -
4079 rows in set (0.05 sec)
mysql> select * from City c join Country ct ON(c.countrycode = ct.code);
3c8c6b8331c9270f8565edd1a8b8d7a5 -
4079 rows in set (0.05 sec)
These are just a couple cool ways to use “pager” inside of the MySQL client. Oh, and before I forget, to turn pager off inside the MySQL command line run the following:
Mysql> nopager
Or just log out and log back in.
You need to be a member of Everything MySQL to add comments!
Join Everything MySQL