暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【MySQL专栏】韩锋:小技巧-如何在MySQL中不显示输出结果

宜信技术学院 2021-05-28
736

在数据库中针对SQL语句进行优化时,经常需要反复执行语句,查看执行效率、成本等。如果语句输出内容较多,不仅会刷屏,而且需要等待时间较长。这里介绍给大家一个小技巧,可做到只查询而不输出。

1.方法 — 使用BLACKHOLE引擎

BLACKHOLE是MySQL支持的一种引擎,从它的名字就可以看出,它是一个“黑洞”。下面通过示例,让我们体会一下它的使用。

(1).查看是否支持BLACKHOLE引擎

mysql> show engines;

. . .

BLACKHOLE dev/null storage engine (anything you write to it disappears)


(2).创建临时表结构

mysql> create table tmp_result as selectd.dname,e.empno,e.ename from big_dept d ignore index(`primary`),big_emp e ignore index(`fk_deptno`) whered.deptno=e.deptno and 1=0;


(3).转换存储引擎

mysql> alter table tmp_result engine blackhole;

mysql> show create table tmp_result;

CREATE TABLE `tmp_result` (

`dname`varchar(14) DEFAULT NULL,

`empno` int(4)NOT NULL,

`ename`varchar(10) DEFAULT NULL

) ENGINE=BLACKHOLE DEFAULT CHARSET=latin1 |


(4).执行查询

mysql> insert into tmp_result selectd.dname,e.empno,e.ename from big_dept d ignore index(`primary`),big_emp e ignore index(`fk_deptno`) whered.deptno=e.deptno ;


(5).删除临时表

mysql> drop table tmp_result;


2.方法pager命令

除了上面方法外还可以使用MySQL内置的pager命令达到上述目的。这个命令相当于在执行结果后,通过pager调用类似管道功能,重定向到其他应用。

(1).示例

mysql> select * from cly;

+-----+--------+-------+-----+------+---------------------+

| id | number |name | aaa | bb | c_time |

+-----+--------+-------+-----+------+---------------------+

| 2 | 100 | aaa | 0 | 0 | 0000-00-00 00:00:00 |

...

| 312 | NULL |haha | 0 | 0 | 2012-12-14 15:59:53 |

+-----+--------+-------+-----+------+---------------------+

mysql> pager cat > /dev/null

PAGER set to 'cat > /dev/null'

mysql> select * from cly;

29 rows in set (0.00 sec)

(2). 取消不显示

mysql> \P


文章转载自宜信技术学院,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论