所以我正在研究由Heroku托管的生产postgres驱动的应用程序,我不知道我的数据需要什么类型的资源。
关于我的数据
我有4张桌子 帐户
的ID
地址
Affils
帐户有很多ID,帐户有很多地址,帐户有很多帐号。
大致会有:
1000万+账户
1400万+地址
700万+ ID
和1500万+关联。
对此进行的查询将始终使用帐户上的名称进行过滤,但它将使用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.5GB,或者更多?感谢您的帮助。
答案 0 :(得分:1)
shared_buffers
并确保你的work_mem
很大足以使典型查询不必使用磁盘文件。 EXPLAIN ANALYZE
和the pretty printer by Mr. "Depesz"是您的朋友。