mysql中pager命令的妙用
来源:互联网 发布:苹果广告屏蔽软件 编辑:程序博客网 时间:2024/05/22 08:08
mysql中pager命令的妙用
在mysql 中,如果linux下,使用pager命令将大大提高工作效率,下面重点看几个例子:
1 首先看下基本用法
mysql> pager less
PAGER set to 'less'
mysql> show engine innodb status\G
这个时候就可以开始使用了less模式了,可以使用空格到下一页,quit退出;
甚至可以直接执行linux下的脚本,比如有个脚本在 /tmp/下的lock_waits.sh
则可以:
mysql> pager /tmp/lock_waits
PAGER set to '/tmp/lock_waits'
会执行/tmp/lock_waits的脚本
2 当要处理大量的数据集的时候,如果只想关心结果,可以这样:
mysql> pager cat > /dev/null
PAGER set to 'cat > /dev/null'
#比如执行一系列的冗长的执行计划语句 ,忽略中间过程输出,直接只显示耗时
mysql> SELECT ...
1000 rows in set (0.91 sec)
mysql> SELECT ...
1000 rows in set (1.63 sec)
3 又比如,如果你在进行SQL调优,有大量的结果产生
mysql> SELECT ...
[..]
989 rows in set (0.42 sec)
可以通过checksum去比较每次调整后的SQL语句所产生的结果是否是相同的
mysql> pager md5sum
PAGER set to 'md5sum'
# Original query
mysql> SELECT ...
32a1894d773c9b85172969c659175d2d -
1 row in set (0.40 sec)
# Rewritten query - wrong
mysql> SELECT ...
fdb94521558684afedc8148ca724f578 -
1 row in set (0.16 sec)
这里checksum不同,所以重写的SQL语句有问题
4 如果有大量的连接,用show processlist看会比较不大方便,比如要知道哪些当前的连接是睡眠或者死掉的,就不大方便,可以这样:
mysql> pager grep Sleep | wc -l
PAGER set to 'grep Sleep | wc -l'
mysql> show processlist;
337
346 rows in set (0.00 sec)
马上看到当前有多少连接sleep了;
进一步,要知道每一种状态的连接情况,可以这样:
mysql> pager awk -F '|' '{print $6}' | sort | uniq -c | sort -r
PAGER set to 'awk -F '|' '{print $6}' | sort | uniq -c | sort -r'
mysql> show processlist;
309 Sleep
3
2 Query
2 Binlog Dump
1 Command
当然,也可以用SQL查询的方式实现了:
mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND='Sleep';
SELECT COMMAND,COUNT(*) TOTAL FROM INFORMATION_SCHEMA.PROCESSLIST GROUP BY COMMAND ORDER BY TOTAL DESC;
------------------------------------------------------------------------
从mysql performace blog 中学到的:
1. pager
例子
mysql> pager more
PAGER set to 'more'
mysql>show variables;
然后就使用more命令来显示“show variables”的输出
根据我的理解, pager之后可以跟任何shell命令来编辑 pager中输出的结果,pager会使用管道把结果传递给后面的命令。相对于“[mysql执行结果] | shell命令"例如:
mysql>pager grep log | more
PAGER set to "grep log | more"
mysql>show variables;
上面的例子用more来显示了所有变量名中带有“log”的变量。
操作完之后,可以使用一个空的pager命令关闭pager模式
mysql>pager
Default pager wasn't set, using stdout.
2. edit
该命令会打开一个编辑窗口来编辑你敲入的上一条命令。默认是一个vi 窗口,可以使用各种vi命令来编辑sql语句。
例如:
mysql>show tables;
...
mysql>edit
//这里敲回车,注意这里没有分号
(在打开的vi中编辑,然后wq退出)
>; //退出后在敲上 分号。 来执行这条编辑后的语句。
3. tee
该命令可以指定一个文件用来保存之后该session的所有输入和执行结果,例如:
mysql> tee /tmp/queries.log
Logging to file '/tmp/query.log'
[do your sql here]
mysql>exit;
cat /tmp/queries.log 来查看刚才输入的命令和结果
(在打开的vi中编辑,然后wq退出)
>; //退出后在敲上 分号。 来执行这条编辑后的语句。
3. tee
该命令可以指定一个文件用来保存之后该session的所有输入和执行结果,例如:
mysql> tee /tmp/queries.log
Logging to file '/tmp/query.log'
[do your sql here]
mysql>exit;
cat /tmp/queries.log 来查看刚才输入的命令和结果
- mysql中pager命令的妙用
- mysql中pager命令的妙用
- mysql中pager命令的妙用
- mysql中pager命令妙用
- mysql中pager的用法
- struts2中native2ascii 命令的妙用
- mysql中sql语句的妙用
- Mysql中group_concat函数的妙用
- Regsvr32命令的妙用
- tar命令的妙用
- tar命令的妙用
- shell中${}的妙用
- shell中${}的妙用
- Shell中${}的妙用
- shell中${}的妙用
- shell中${}的妙用
- dos命令subst的妙用
- tee命令的一个妙用
- C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来)
- 关于Spring中dataSource的配置
- 矩形计数
- 往query插入多个参数的方法
- 为什么C++(中文版——感谢waterwalk翻译)
- mysql中pager命令的妙用
- ORACLE 11g新特性 DRA(Data Recovery Adviseor)
- APDU命令
- C++ 指针 (2)-指针入门
- PHP排雷之编码问题
- MC新手入门(三十九)------ 声音函数、游戏控制器
- HDU1823(二维线段树)
- sqlplus命令收集
- ExtJs自学教程(1):一切从API开始