如何优化一个“写一次,读多”types的基础设施的PostgreSQL服务器?

问候,

我正在开发一个软件,用于在PostgreSQL数据库中logging条目(以及相关的标记)以进行存储和检索。 我们从未更新任何数据,一旦插入; 当条目变得太旧时,我们可能会删除它,但是一天最多一次。 存储的条目可以由用户检索。

新条目的插入可以相当快速和有规律地进行,因此数据库通常会有数百万个元素。

使用的表格非常简单:一个用于标识,原始内容和插入date的表格; 和一个存储标签及其与id相关的值的表格。 用户search主要涉及标签值,因此SELECT通常由两个表上的ID上的JOIN查询组成。

把它们加起来 :

  • 2桌
  • 很多INSERT
  • 没有更新
  • 一些DELETE,最多一天一次
  • 用JOIN生成一些用户生成的SELECT
  • 庞大的数据集

考虑到这些要求,最佳的服务器configuration(软件和硬件,我假设RAID10可以帮助)是否适合我的PostgreSQL服务器? 通过最优化,我的意思是允许SELECT查询花费相当less的时间。

如果需要,我可以提供有关当前设置的更多信息(如表,索引等)。

在postgresql.conf中更改一些configuration设置:写入:增加wal-settings读数:增加shared_buffers,并将work_mem设置为规划器可以达到的效果。

有几个设置,你必须检查和testing。

RAID 10非常适合写作,阅读也不错。 一个有很多内存和电池备份的好RAID卡将会有很大的帮助。

而且,RAM,RAM和RAM。 你不能有太多。