因此,我正在开发一个由Heroku托管的PostgreSQL驱动的生产应用程序,但我不知道我的数据需要哪种类型的资源。
稍微了解一下我的数据
我有4张桌子
账号
IDs
地址
阿菲尔斯
账号是有很多ID的,账号有很多地址,账号有很多关系。
大致有以下几点:
1000多万个帐户
超过1400万个地址
700万+ID
一千五百万以上。
对此执行的查询将始终使用帐户上的名称进行筛选,但它将使用DMETAPHONE或LEVENSHTEIN进行匹配。我打算按名字建立索引。
查询可能如下所示:
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,或者更多?谢谢你的帮助。
发布于 2013-11-13 06:17:53
shared_buffers放入Postgres,并确保您的work_mem足够大,以至于典型的查询不必使用磁盘文件。如果查询很慢,那么分析并优化EXPLAIN ANALYZE和the pretty printer by Mr. "Depesz"是你的朋友。https://stackoverflow.com/questions/19940185
复制相似问题