使用mysql命令行時, 輸出太多的東西, 看不到就很悲劇了。在shell中可以使用管道或是直接用more, 但是mysql命令行裏怎麼辦呢?
mysql3306.sock [(none)]> \h
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
1.
# 設置less閱讀模式
mysql3306.sock [bailidb]> pager less;
PAGER set to 'less'
# 使用less閱讀模式查看InnoDB Status信息
mysql3306.sock [bailidb]> show engine innodb status\G;
/TRANSACTION => 搜索
n => 下一個
Home鍵 ↑ Top
End鍵 ↓ bottom
q => 退出
空格 => 下一頁
# 取消pager設置
mysql3306.sock [bailidb]> nopager; \n
PAGER set to stdout
2.
# 處理大量的數據集的時候, 如果只想關心結果(比如說花費的時間)
mysql3306.sock [bailidb]> pager cat > /dev/null;
PAGER set to 'cat > /dev/null'
mysql3306.sock [bailidb]> show tables;
5 rows in set (0.00 sec)
mysql3306.sock [bailidb]> select * from t2;
1 row in set (0.00 sec)
mysql3306.sock [bailidb]> nopager; \n
PAGER set to stdout
3.
# 在進行SQL調優, 有大量的結果產生, 可以通過checksum去比較每次調整後的SQL語句所產生的結果是否是相同的
mysql3306.sock [bailidb]> pager md5sum;
mysql3306.sock [bailidb]> select * from t1;
3cd934ef8bc8faa65b917a9fb8c15847 -
1 row in set (0.00 sec)
mysql3306.sock [bailidb]> select * from t2;
6aff230e5e7bcf6af5bbceda0256288a -
mysql3306.sock [bailidb]> nopager; \n
PAGER set to stdout
4.
# show processlist 檢查
mysql3306.sock [(none)]> pager grep Sleep;
PAGER set to 'grep Sleep'
mysql3306.sock [(none)]> show processlist;
| 4 | root | localhost | NULL | Sleep | 53 | | NULL |
mysql3306.sock [bailidb]> nopager; \n
PAGER set to stdout
學習自該篇文章,自己做了驗證