删除的SQL条目是否仍然占用空间/行?

时间:2014-05-28 06:54:12

标签: sql django postgresql heroku

我正在通过Django开发应用程序,用户可以使用RESTful界面更新特定条目。由于所有内容都是通过JSON发布的,并且每次用户更新其条目时条目数可以保持不变,减少或增加,我认为处理此问题的最佳方法是删除所有用户的当前条目,并重新添加他们提交的所有条目。

我使用heroku来托管网站,而对于他们的爱好数据库,它们受行数限制。即使对于他们的标准数据库,它们也会根据大小进行限制......我注意到当我删除Django中的对象时,索引永远不会重置,我理解为什么,但这是否意味着删除的行仍然占用空间/存在?如果有帮助,我会使用PostgreSQL

1 个答案:

答案 0 :(得分:1)

  

删除的SQL条目是否仍占用空格/行?

在PostgreSQL中,是的,他们仍然占用了一段时间的空间。您UPDATE d的旧版本行也是如此。一段时间VACUUM出现并标记可用于重复使用的空间,尽管它仍在使用"就操作系统而言。稍后,INSERTUPDATE d行的新版本中的新行将被写入旧的真空行。

你可以TRUNCATE一个表,导致所有行被立即清除,但这是一个全有或全无的事情。

Heroku是否计算已删除的行取决于它们如何实现系统的内部,并且与它们是否仍然占用空间无关。如果我不得不猜测我会说"没有",因为在Heroku你不能控制真空活动等,所以让你等真空是不公平的到处做清理工作。

Heroku has some documentation on the topic here