关于数据库的Delete操作

在工作中,遇到一个需求,就是涉及数据合并。最合理的方式是通过数据仓库分层,离线计算进行聚合操作,再将数据提供给业务。但是开发过程中带来的困难并不完全来源于技术,比如我们公司离职了很多数据开发,根本无法支撑我们,但是也不可能分配权限给我避免把我们脆弱的集群整崩溃。也考虑过使用标记符号进行标记删除。但是还是不可避免需要删除聚合结果的数据。因此,我为了简化业务处理,将数据合并完成之后进行update+delete操作,避免低价值数据堆积,以及影响后续数据合并。

对于delete的操作,我还是保持慎重的态度,调研删除在业务开发场景中的利弊:

  1. 对于MySQL恢复成本高,逻辑删除,增加查询条件的方式更为可控。
  2. delete如果权限管理不到位,容易造成事故。我也只敢在一个单一功能(其他业务数据只进不出)的表使用delete。
  3. 企业可能需要IT审计(企业内外部),删除掉过程数据,导致业务流程无法追溯,会有问题。【尤其大厂】
  4. 对于普通的中小型公司处于运营成本考量,还是适当删除低价值数据。

另外,面试中时不时会遇到这样的考题:为什么不能使用delete,甚至谣传是mysql官方建议?mysql官方可没建议过。

posted @ 2023-11-15 23:37  月落随山隐  阅读(35)  评论(0)    收藏  举报