当前位置:首页 > 每日看点 > 正文内容

阿里面试:为什么MySQL不建议使用delete删除数据?

卡卷网1年前 (2024-12-14)每日看点369

运维dog(卑微状):开发大佬们,能不能别在代码里直接delete数据库……

开发(高赞状):我很好奇他们建议使用的什么?drop database?

运维dog(惶恐状):不不不,那个更可怕好伐……

开发(站起来,离开键盘):那?u can u up?(潜台词no can no bb)

运维dog(敲了几下键盘):用update就好了嘛,加个字段做标记,无用数据标记为0……

===================

作为运维dog不好下场评论,以下剧情依据评论区数据整理(虽然有可能表达我的真实想法)……

开发(乜斜眼睛):不删数据 到时候运行几年表巨大 占空间又在那边BBBBBB

运维dog(鼠标右键):delete 空间也不释放,水位没下降啊……

另一个开发(敲了敲桌子):先别管空间了,我代码咋写?主键约束怎么办,删了不能立即插入啊!而且每个查询语句里,都要加个条件delete=0,关键这个字段区分度只有万分之一,加索引白白浪费空间不说,还降低写入效率。

运维dog(犹豫状):有个东西似乎叫“联合主键”?我记得不是很清楚,不写代码好多年了……

一个被合规耽误的开发:GDPR要求必须在若干天以内删数据怎么办?包括备份数据里也必须删掉。不然的话,用户注销账户,以为delete了,其实update,然后就可以卖信息了?

运维dog(推了推眼镜):我记得你,你就是昨天让我调一个用户的记录,我调不出来你投诉我的那个,那个用户的数据就被delete了啊,我tmd白被投诉……

被合规耽误的开发(咳咳):昨天我属实是有点冲动,为了减少办公室恶性事件的发生,我想到个法子,兼顾运维dog要的可溯源而且不至于无法挽回,也兼顾了开发dog对数据库性能的顾虑……等等,你们什么表情?

众人(内心OS:都去做合规了还记得代码?):请开始您的表演……

被合规耽误的开发:建个his表吧,或者叫backup表也行,即时操作还是update,不要一下子delete了无法挽回,超过一段时间就把数据挪到his表里,冷备起,这样你可以溯源,你不用担心实时表变成巨无霸,你……主键改成联合主键是个好习惯,认了吧!

俩开发(嘲讽状):合着你不做开发了,就不用管历史查询的时候我要跨表了是吧……

=========1115分割线==========

似乎新增了不少评论,虽然不能继续推进剧情发展,但有人看我就可以编,可劲编,继续编……

转岗HR的开发(端着咖啡路过):在讨论啥呢,这么热闹……哦,dml数据库啊,这个问题简单,你们都没有仔细读题,题主问的是“阿里面试:为什么MySQL不建议使用delete删除数据?

俩开发(哼):你要再出一个合规开发那样跨表的馊主意么?

转岗HR的开发(把咖啡放下,拿起鼠标点了点):看清楚,我划重点了啊,这是阿里面试问的,面试官希望听到的回答当然是,因为普通MySQL没有阿里云数据库那样随时回档到某个历史时刻的功能啊!俩瓜娃子,只会敲代码,怪不得年年绩效C,不涨工资!

运维dog(若有所思):是,云数据库可以随时回档,满足溯源,可以随便delete……(把键盘一扔)卧槽,你做了HR整天琢磨这个,合着是在防止我删库跑路是吧?!

转岗HR的开发(讪讪):哪能呢,最近双十一支付宝刚崩了,运维现在是大爷,轻易不敢惹的。

开发(左边眉毛一挑):听你在这里胡扯,IT预算够的话,还买什么阿里云MySQL数据库,直接一步到位上阿里云分布式数据库啊!直接连读写分离、分库分表都做好了,要我这样的开发何用,开发才是可以轻易惹的是吧?

另一个开发(右边眉毛一挑):就是就是,这不是搞了降本增效,你堂堂一个前端开发,为何转岗做了HR,刚才那个堂堂后端开发,为何转岗做了合规?(内心OS:羡慕合规确实门槛很低,这也不行,那也不行,只需说No,绩效就A了……)

转岗HR的开发(正喝着咖啡,咳咳):咳咳,你们俩,差不多得了,别在这凡尔赛,你还以为合规只要说no就行了,那哥们最近在恶补欧萌和美帝制裁天朝的目录,头都抓秃了……等等,你们什么眼光,以为我这个HR就好做了?TMD这年头都是逼乎等自媒体害的,谈离职补偿一个比一个精,劳动法条款倒背如流,开局一支笔,录音三小时……歪楼了,你们继续聊,我走了……了……

=========1206分割线==========

架构师和转岗测试的开发路过时加入群聊,转岗HR的开发退出群聊的同时分享了全部聊天记录。

转岗测试的开发:这个我熟呀,毕竟我前脚做的DBA开发,后脚刚做的测试。你看看你们自己的聊天记录,一、都已经知道了delete不能真正释放表空间,会造成磁盘空间浪费,(右手把左手手指一根根压下去,屈指可数状);二、磁盘数据碎片化、性能下降;三、索引稀疏、事务日志膨胀;四、运维dog最关心的数据恢复困难;五、delete锁表啊,我测试的时候稍微多开几个线程,轻松就中奖delete锁表,真TMD深恶痛绝!

开发(撸起袖子):咋,不服先打一架?我怀疑你在说我,虽然我没有证据。

架构师(招手让慢腾腾没走远的HR回来):你们打一架,正好超额完成HR的降本增笑KPI?问题我们都基本上看到了,分布式数据库是没预算的,在普通MySQL上怎么解决?解决不好,让HR笑一笑?

转岗HR的开发(满脸堆笑):架构师大神说笑了,财源什么的,没有没有的事……

运维dog:合规 dog……啊不不不,合规大佬前面说的归档his表方案,虽然确实存在历史查询跨表的坑爹问题,但在这个问题中,确实算是一个很好的解决思路。

架构师:说来听听。

运维dog:一条记录从我们的系统中产生并入库,我们可以引入一个“数据生命周期”的概念来进行管理。首先进入实时表,方便程序做高频访问和修改,异步写入全量表,当然异步时延在不牺牲写入速度的前提下;当删除请求出现的时候,实时表可以直接delete,异步写入删除表。

转岗测试的开发:运维dog此言大善!以我做DBA的经验看,只要删除表和全量表使用同样的索引字段,查询效率受到的影响不大。对于这三个表来说,实时表只存近期数据,本来数量就不大,而全量表和删除表都是新增记录,不存在索引稀疏和磁盘碎片的问题,事务日志也没有膨胀……

开发(点点头):实时表可以随意delete了,就是有点费磁盘,而且每个写请求进来都是写两次……

架构师(叹口气):唯二的好处是,确实可以追溯历史记录,而且全量表查询不用跨表了。

运维dog:写数据库不能既要又要啊,我说的这个思路,本质上其实也就是开发自己的程序把分布式数据库的活做了而已,要不架构师大神申请多点IT预算,我们用HR说的方案,直接用分布式数据库,底层不也是这样实现的嘛……

转岗测试的开发:这大约就是合规的代价吧。

=========大约是完了,总不能有人想看腾讯云TDSQL的坑列表吧?==========

=========如果真有,让阿里云给我打点钱,我就列出来==========

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/4423.html

分享给朋友:

相关文章

个人站长为什么越来越少了?个人网站还能做吗?

个人站长为什么越来越少了?个人网站还能做吗?

在互联网快速发展的浪潮中,个人站长曾经有过辉煌的时代,但如今却面临着诸多困境,甚至走向 “死亡”。一、竞争激烈,难以立足如今的互联网行业,巨头林立,各大平台凭借着雄厚的资金、技术和资源优势,占据了绝大部分市场份额。无论是搜索引擎、社交媒体还...

我爸讽刺我,写个破代码一年才十几万,他在工地带50个人,让我回去跟他干,写代码没出路,我该怎么选择?

我跟你一样的情况,本人现身说法,千万不要跟你爸干,我就是反面教材,现在想回去都回不去了,快十年没写代码了,再就是岁数大了,38岁了,35岁以上的码农根本就没公司愿意要,而且会受歧视。工程不好干,首先就是不合法,在法律层面,根本就没有包工头的...

有没有能够兼顾便携并且流畅运行各种AI应用的笔记本?求推荐?

有没有能够兼顾便携并且流畅运行各种AI应用的笔记本?求推荐?

看了下题主的描述,可以考虑「联想YOGA Air 15 Aura AI元启版」,今年9月底出的一款轻薄本,也通过了英特尔Evo严苛认证。处理器用了英特尔最新的「酷睿 Ultra 7 258V」,主要亮点就是AI性能、图形处理能力和能效,很适...

有哪些让你目瞪口呆的 Bug ?

有哪些让你目瞪口呆的 Bug ?

成都有个监狱情况比较特殊,关押的基本全是重犯,而且还都是经济犯和政治犯,他们以前都是一方大佬,在自己的一亩三分地翻手为云覆手为雨,无非是不小心中箭落马或帮老大顶锅才进监狱,所以即使进来了,他们依然保持着体面和骄傲,依从性差,虽然不至于和监狱...

在 Kubernetes 中,Service 的实现原理是什么,它是如何实现服务发现的?

行,问的这个问题挺有意思,Kubernetes 里 Service 是怎么实现的,服务发现是怎么回事,咱就直说了。这事儿看起来挺玄乎,但掰开揉碎了讲,也就那么回事。你得把这事儿想得简单点,别一上来就被啥术语吓住了——其实全是些搬砖的套路。咱...

面试官问“你的SQL能力怎么样?”时应该如何回答?

面试官问“你的SQL能力怎么样?”时应该如何回答?

如果面试时被问你SQL能力怎么样?要么是考查一下题目,怎么写SQL语句。要么是问SQL优化相关的,更容易问出一个人的水平。sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。