删除的SQL条目是否仍占用空间/行?
我正在通过Django开发一个应用程序,用户可以使用RESTful界面更新特定条目。由于所有内容都是通过JSON发布的,并且每次用户更新其条目时条目的数量都可以保持不变、减少或增加,因此我认为最好的处理方法是删除用户当前的所有条目,然后重新添加他们提交的所有条目 我用heroku来主持这个网站,对于他们的爱好数据库,他们限制行数。即使对于标准数据库,它们也会根据大小进行限制。。。我注意到,当我在Django中删除对象时,索引将永远不会重置,我理解为什么,但这是否意味着删除的行仍然会占用空间/存在?如果有帮助的话,我正在使用PostgreSQL 删除的SQL条目是否仍占用空间/行 在PostgreSQL中,是的,它们仍然会占用空间一段时间。您更新的行的旧版本也是如此。过了一会儿,真空吸尘器出现了,并将空间标记为可重复使用,尽管就操作系统而言,它仍在使用中。然后一段时间后,删除的SQL条目是否仍占用空间/行?,sql,django,postgresql,heroku,Sql,Django,Postgresql,Heroku,我正在通过Django开发一个应用程序,用户可以使用RESTful界面更新特定条目。由于所有内容都是通过JSON发布的,并且每次用户更新其条目时条目的数量都可以保持不变、减少或增加,因此我认为最好的处理方法是删除用户当前的所有条目,然后重新添加他们提交的所有条目 我用heroku来主持这个网站,对于他们的爱好数据库,他们限制行数。即使对于标准数据库,它们也会根据大小进行限制。。。我注意到,当我在Django中删除对象时,索引将永远不会重置,我理解为什么,但这是否意味着删除的行仍然会占用空间/存在
INSERT
中的新行或UPDATE
d行的新版本被写入旧的真空行
您可以截断一个表,使所有行立即被清除,但这是一个要么全有,要么全无的问题
Heroku是否统计删除的行取决于它们如何实现系统的内部结构,而与它们是否仍然占用空间无关。如果非要我猜的话,我会说“不”,因为在Heroku上,你不能控制真空活动等,所以让你等他们的真空出来清理是相当不公平的
.那么“一段时间”大约需要多长时间?取决于自动真空设置、桌子大小、数据库有多忙等。但它会在24小时内消失吗?什么是最长的假设时间?没有最长的假设时间。如果autovacuum不运行,死排可能会永远存在。如果您想了解Heroku的具体细节,那么您可能需要联系他们的支持人员,以了解死行和膨胀的原因。这篇文章表明,它们的计数是实时行(即未删除):当您运行heroku pg:info
时,会触发真空。