Oracle和MySQL中短小精悍的SQL

作者: admin 分类: 公众号存档            1 次浏览 发布时间: 2017-07-01 23:37

公众号:杨建荣的学习笔记 · 作者:r13笔记第10天 · 发布:2017-07-01 23:37:37 · 原文链接

如果让你写一个简单牛叉的SQL,数据库类型不限,你会写出什么样的SQL语句。

Oracle

   如果是Oracle,我就写个drop table dual;

这个SQL看起来很简单,包含的信息量还是蛮大的,首先对于dual表你得有一定的认识和了解,而这个视图和一般的数据字典不同,如果删除之后,直接会导致数据库不可用。恢复起来需要一个隐含参数来调整。

   当然如果想换一个角度来,写出一些含有人生哲理的SQL来,这方面得下不少功夫了。

   我想了一个,比如Flashback database to sysdate-1/24/60;

   这个我想表达的意思就是,数据库可以闪回到一分钟前,而我们的人生不会,统统不会。

MySQL

     MySQL的角度来写几个这方面的SQL自己还真想了不少,但是感觉都不是很满意,直到我看到了jeremycole 提供的一个MySQL性能测试语句,简单但是威力很大。

   github上可以看到 https://github.com/jeremycole/yesmark

    语句就一行:

yes "DO 0;" | mysql >/dev/null &

    如果想开个并行,那也不是事儿,比如开16个并发。

for i in {1..16}; do yes "DO 0;" | mysql > /dev/null & done

   这样的语句真实短小精悍。

我呢,也算是抛砖引玉了,大家有什么好的想法,欢迎留言。

admin

杨建荣,《Oracle DBA工作笔记》《MySQL DBA工作笔记》作者,dbaplus社群发起人之一,腾讯云TVP,现任竞技世界系统部经理,拥有十多年数据库开发和运维经验,目前专注于开源技术、运维自动化和性能调优

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注