gpt4 book ai didi

sql - 对于性能问题,在数据库中保留记录而不是删除它是否有好处?

转载 作者:行者123 更新时间:2023-11-29 11:48:19 24 4
gpt4 key购买 nike

所以我有一个客户端,我正在为其构建 Rails 应用程序......我正在使用 PostgreSQL。

他发表了关于更喜欢隐藏记录而不是删除记录的评论,鉴于这是我第一次听说这个,我想我会请你们听听你们的想法。

I'd rather hide than delete because deletions in tables eventually lead to table index havoc that causes queries to take longer than expected (much worse than Inserts or Updates). This won't be a problem in the beginning of the site (it gets exponentially worse over time), but seems like an easy issue to never encounter by just not deleting anything (yet) as part of the "everyday" web application functionality. We can always handle deletions much later as part of a Data Optimization & Maintenance process and re-index tables in that process on some (yet to be determined) scheduled basis.

在我构建的所有 Rails 应用程序中,我从未遇到过记录被删除并影响索引的问题。

我错过了什么吗?这是一个曾经存在的问题,但现代 RDBMS 产品已经修复了吗?

最佳答案

可能有不希望删除记录的功能原因,但与某种形式的表索引“破坏”相关的原因几乎肯定是虚假的,除非有一些技术证据支持。

您在 Oracle 世界中经常听到这种事情——索引不会重新使用删除所释放的空间。它通常基于对事实的一些误解(例如,索引 block 在完全为空之前不会被释放以供重新使用)。因此,您最终会得到人们提供定期重建索引的建议。如果您仔细考虑这些问题,您会想知道为什么 RDBMS 开发人员不解决此类问题,因为它可能会损害系统性能。

所以可能有一些与 Postgres 相关的信息,可能是过时的,这是基于的信息,但实际上反对完全正常类型的数据库操作的人有责任提供证据来支持他们的立场。

另一个想法:我相信在 Postgres 中,更新是作为删除和插入来实现的,因此建议经常清理大量更新的表。基于此,更新也应该导致与删除相关的相同索引问题。

关于sql - 对于性能问题,在数据库中保留记录而不是删除它是否有好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18544080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com