如何优化 postgreSQL 服务器以实现“一次写入,多次读取”类型的基础设施?

如何优化 postgreSQL 服务器以实现“一次写入,多次读取”类型的基础设施?

问候,

我正在开发一款软件,用于将条目(以及相关标记)记录到 PostgreSQL 数据库中以供存储和检索。一旦插入数据,我们便不会更新任何数据;当条目太旧时,我们可能会将其删除,但每天最多执行一次。存储的条目可由用户检索。

新条目的插入可以相当快且有规律地发生,因此数据库通常会保存数百万个元素。

所用的表非常简单:一个表用于存储 ID、原始内容和插入日期;另一个表用于存储与 ID 关联的标签及其值。用户搜索主要涉及标签值,因此 SELECT 通常由两个表上的 ID 上的 JOIN 查询组成。

把它们加起来 :

  • 2 张桌子
  • 大量插入
  • 没有更新
  • 一些 DELETE,最多一天一次
  • 一些用户生成的带有 JOIN 的 SELECT
  • 庞大的数据集

考虑到这些要求,我的 PostgreSQL 服务器的最佳服务器配置(软件和硬件,例如我假设 RAID10 可以提供帮助)是什么? 所谓最佳,是指允许 SELECT 查询花费相当少的时间。

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

答案1

更改 postgresql.conf 中的某些配置设置: 写入:增加 wal-settings 读取:增加 shared_buffers 并将 work_mem 设置为规划器可以发挥其魔力的数量。

有几个设置,您必须检查并测试。

RAID 10 非常适合写入,读取也很好。具有大量 RAM 和电池备份的优质 RAID 卡将大有帮助。

还有,RAM、RAM、RAM。RAM 再多也不嫌多。

相关内容