当执行 DELETE 时,你心慌了

点击蓝色“有关SQL”关注我哟

加个“星标”,天天与10000人一起快乐成长

d6d932dcee35d7a45295cda3668b6a48.png

前两天在朋友圈,我发了个小感慨:当执行 DELETE时,你心慌不慌?

没想到大家的内心戏,都挺丰富的。

24bde8c1e18fa3f4d2ef20fd8352f943.png

老实讲,俺也一样。不仅仅是执行 DELETE 心里会咯噔下,多几次确认,哪怕是 INSERT,UPDATE, 甚至是 SELECT, 只要是在生产环境做的操作,都难免心里会有些紧张。

那有朋友说了,为什么执行 SELECT,心里都会紧张呢。这里面其实 有个小故事的

那年,公司刚上 BO(BusinessObjects),SAP 的一款BI工具。这款工具,最出色是它的 Universe 组件。它就是 OLAP 元引擎。负责了从业务逻辑视图到物理底层存储视图的转换。

只要 Universe 设计的好,自助BI是完全可行的一条路。

c7a038c09f9cde1852ce0dfb119aebe2.gif

但正因为,Universe 设计得太过于重型,押宝押的大,它在事务隔离上并没有做的很出色。经常导致一条经Universe编译转换后的SQL, 会堵塞其他进程。

恰恰那一次堵塞,是我造成的。当我把Universe编译后的SQL拿出来一查,居然用了readcommitted 隔离级别。做过数据仓库的朋友都知道,OLAP 的查询,可能会横跨几个时间段,比如3个月,5个月,甚至12个月更久。

如此巨大的随机访问,给数据库服务器的压力,尤其是CPU,IO压力,一定是巨大的。再加上长事务的锁表,因此阻塞其他进程,就没有悬念了。

老板连用了三段大写的警告:Never pull suchhuge data on Production!!!

4d117054851b88dc5ab2945957dfe7cd.gif

自此,我对 Universe 自动生成的 SQL就多了个心眼,每次都检查,甚至对 SELECT 语句,也产生莫名的敬畏。即时查询,我一定是先设置隔离级别,再执行。

你们看,SELECT都如此重要,更别说 INSERT/UPDATE/DELETE了。

那怎么缓解执行时的那种焦虑感呢?毕竟就我个人而已,焦虑紧张时,我会胃疼

朋友们纷纷给出自己的解决方法:

-    备份

-    多次检查

-    先走一遍UAT,再上生产

-    写好辞职报告,随时走人

-    千万别申请生产的DML权限

-    壮起胆,闭好眼,干就完了

除了少数朋友,是来搞气氛的,其他的建议都不错。

比如,对小数据量的表,做备份;多检查几遍 where 条件;先在开发环境做测试,再去生产环境执行,等等。

de0d4bdbd39cb05da8edd202b93703ce.gif

经过实践,我觉得保护好自己的胃(当然你可能是肠子,或者是肝胆之类的,毕竟每个人应对紧张的反应不同),除了少吃,就是要养成好的SQL操作习惯:

  • 对条件确认二遍以上,第一遍看语法,第二遍看逻辑

  • 写好测试逻辑,来验证执行后的结果

  • 对执行脚本做双重验证,即由另一个队友帮你检查

  • 先在开发环境做测试

  • 不要随机在生产环境执行更新脚本,定一个数据维护窗口,比如晚上12点以后

  • 需要即时更新的数据,一定加好事务控制,先执行再验证,结果正确,再提交

  • 了解你所用数据库的备份机制,如果没有分钟级日志备份,申请加上

如果你有其他的好方法,留言说说吧

--完--

往期精彩:

本号精华合集(三)

外企一道 SQL 面试题,刷掉 494 名候选人

我在面试数据库工程师候选人时,常问的一些题

零基础 SQL 数据库小白,从入门到精通的学习路线与书单

4cfbee8690e7258fa76a5ceb3fc70f90.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dbLenis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值