我一如既往地要完成任务和一些有限的硬件资源。
我需要使用单个数据库设置postgres服务器,其中包含一个大对象表(3TB +)和一些小的,访问量很大的表(<10 GB)。
我的旧物理服务器有大约5 TB的硬盘空间,CPU和RAM有限,我也可以使用更快(在CPU和RAM中)虚拟服务器 - 但存储空间有限。
我不会有太多的DELETE语句,大多数SELECT语句都会是最近的数据。将有一个同时连接完成所有工作,客户端只在一个主机上。
我看到几个场景:
甚至可以复制postgres数据库的最新部分吗?
90%的SELECT查询将是最新的~5-10千兆字节的数据,但我需要无缝访问其余的2,990 TB。
我该怎么办? (购买适当的硬件除外;)
答案 0 :(得分:1)
只要你有足够的RAM来缓冲10GB的大量访问数据,它就不重要了。
您需要一些额外的RAM才能读取大型对象而无需将10GB推出缓存,但这在当今的机器上不应该成为问题。
如果您的所有工作都是在一个连接上完成的,那么听起来数据库上没有高负荷。
所以我真的不担心按照这样的要求进行扩展。
您最担心的可能是如何在合理的时间内备份3TB数据。
编辑:如果您的内存少得多,则应该让机器的存储速度更快。
答案 1 :(得分:0)
最后,我检查了几种不同的场景,并决定不将文件/大对象保存在数据库中。
通过NFS(v4)安装数据库位置的Postgres有一些滞后 - 它更快但是它周期性地窒息了几秒钟,我决定在NFS上存储普通文件,这显然更慢但更稳定。我确定有办法调整它,但这个解决方案也很好。
Postgres用于文件索引并将其文件保存在本地硬盘上。