问候,
我正在开发一款软件,用于将条目(以及相关标记)记录到 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 再多也不嫌多。