您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

mysql中pager命令的妙用_MySQL

2024/3/13 0:59:48发布18次查看
bitscn.com
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;
bitscn.com
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product