最近,我创建了一个新的 Heroku 应用程序用于生产,并使用我从临时数据库中获取的备份填充它的数据库。
问题在于,如 Heroku 的 Postgres 网页上所示,这两个数据库的数据库大小不同!
我从中获取备份的第一个数据库大小为 360 MB,而填充的新数据库只有 290 MB。
备份/加载过程中没有出现错误。从两个数据库进行备份会产生相同的备份文件大小(大约 40 MB)。
该项目运行良好,两个应用程序看起来完全相同,但我担心我可能会丢失一些数据,从而在将来造成麻烦。
更多信息:我在两个应用程序上使用相同的生产数据库计划。
此外,第一个数据库不会附加到第一个实例(因为它是从 Postgres 管理页面添加的,而不是从应用程序的资源页面添加的),并且新数据库附加到新应用程序。
提前致谢
postgresql DB在使用时消耗更多空间是可以的。
其原因在于它的MVCC系统。每次你UPDATE
数据库中的任何记录都会创建该记录的另一个“版本”,而不是重写以前的记录。此“过时”记录将被删除VACUUM
过程,当不需要它们时。
因此,当您从备份恢复数据库时,它没有任何“死”记录,并且其大小更小。
详细信息在这里http://www.postgresql.org/docs/current/static/mvcc.html http://www.postgresql.org/docs/current/static/mvcc.html and http://www.postgresql.org/docs/current/static/sql-vacuum.html http://www.postgresql.org/docs/current/static/sql-vacuum.html.
附:您无需担心。 Postgresql 将处理VACUUM
自动地。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)