首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该为postgres实例规划什么类型的资源?

我应该为postgres实例规划什么类型的资源?
EN

Stack Overflow用户
提问于 2013-11-13 05:23:16
回答 1查看 54关注 0票数 0

因此,我正在开发一个由Heroku托管的PostgreSQL驱动的生产应用程序,但我不知道我的数据需要哪种类型的资源。

稍微了解一下我的数据

我有4张桌子

账号

IDs

地址

阿菲尔斯

账号是有很多ID的,账号有很多地址,账号有很多关系。

大致有以下几点:

1000多万个帐户

超过1400万个地址

700万+ID

一千五百万以上。

对此执行的查询将始终使用帐户上的名称进行筛选,但它将使用DMETAPHONE或LEVENSHTEIN进行匹配。我打算按名字建立索引。

查询可能如下所示:

代码语言:javascript
复制
SELECT (rows) FROM accounts 
WHERE DMETAPHONE(name) = 'example' AND id IN 
    (SELECT accountID FROM addresses 
     WHERE (conditions)) AND id IN 
         (SELECT accountID FROM IDs 
          WHERE (conditions)). 

对于这些类型的操作,我需要什么类型的资源才能获得良好的性能。我应该为数据库考虑2 GB的缓存,还是应该考虑7.5 GB,或者更多?谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-11-13 06:17:53

  • DB总是可以从更多的I/O中获益。如果您可以获得多个文件系统(它们位于不同的物理磁盘上,不知道如何在Heroku上继续下去),您就可以使用tablespaces分发您的DB对象。尝试将表和它们的索引放在不同的磁盘上,或者将一个磁盘用于帐户+索引,另一个磁盘用于地址+索引。
  • 如前所述,function results can be indexed,这可以给您的用例带来巨大的提升
  • Postgres将充分利用您提供给它的所有内存(直到您进入巨大的超大区域),尽您所能地将您的shared_buffers放入Postgres,并确保您的work_mem足够大,以至于典型的查询不必使用磁盘文件。如果查询很慢,那么分析并优化
  • 通常比仅仅在问题上投入硬件和金钱更有效率。EXPLAIN ANALYZEthe pretty printer by Mr. "Depesz"是你的朋友。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19940185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档