Mil*_*ota 22 database postgresql
我有一个900万行表.我发现可以释放大量的(大约90%).清理后需要采取什么行动?真空,重新注入等
提前致谢.
int*_*tgr 44
如果要释放文件系统上的空间,VACUUM FULL或CLUSTER可以帮助您.您还需要在这些之后运行ANALYZE,以确保规划器具有最新的统计信息.在此过程中,您的表将完全锁定(此表上的读取和写入将挂起),因此您可能希望在一段时间内使应用程序脱机.
在PostgreSQL 8.2及更早版本中,VACUUM FULL可能是你最好的选择.
在PostgreSQL 8.3和8.4中,CLUSTER命令得到了显着改进,因此不建议使用VACUUM FULL - 它很慢并且会使索引膨胀.CLUSTER将从头开始重新创建索引而不会膨胀.根据我的经验,它通常也要快得多.CLUSTER还会使用索引对整个物理表进行排序,因此您必须选择一个索引.如果您不知道哪个,主键将正常工作.
在PostgreSQL 9.0中,VACUUM FULL被改为像CLUSTER一样工作,所以两者都很好.
很难做出预测,但在经过适当调整的商用硬件服务器上,900万行不应超过20分钟.
| 归档时间: | 
 | 
| 查看次数: | 23385 次 | 
| 最近记录: |