mysql pager用不了_mysql中pager命令的妙用_MySQL

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

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值