Rag*_*dra 0 postgresql postgresql-9.2
我们的数据库大小之一是50gb。其中一张表有149444622条记录。该表的大小为14GB,其索引大小为16GB。该表及其索引的总大小为30GB。我已经在该表上执行了以下步骤。
reindex table table_name;
vacuum full verbose analyze on table_name;
Run Code Online (Sandbox Code Playgroud)
但是表的大小及其索引大小仍然没有减少。请引导我。如何进一步进行。
表的结构如下。
您的数据14 GB并非异常。让我们做数学。
只需将列的大小相加即可得出每列68个字节。
2 bigints @ 8 bytes each 16 bytes
4 integers @ 4 bytes each 16 bytes
4 doubles @ 8 bytes each 32 bytes
1 date @ 4 bytes 4 bytes
--------
68 bytes
Run Code Online (Sandbox Code Playgroud)
149,444,622(每个68个字节)约为9.7 GB。如果没有数据库开销,这是数据的绝对最小大小。但是有开销。 该答案估计每行大约28个字节。68 + 28是每行96个字节。这使我们达到了14.3 GB。就是你所拥有的。
我怀疑您可以在不更改架构,删除索引或删除数据的情况下减小大小。如果您提供有关架构的更多详细信息,我们可以提出建议,但是我建议您将其作为一个新问题。
最后,考虑50 GB是一个很小的数据库。例如,Heroku提供的最小的付费数据库是64 GB,每月只需$ 50。在这种情况下,只使用更大的磁盘就可以了。
归档时间: |
|
查看次数: |
273 次 |
最近记录: |