从上面的描述中,我假设您每秒5000次查询完全是读取操作 . 这基本上就是我们所说的数据仓库用例 . 您的可用性要求是什么?它是否必须托管在AWS和朋友上,或者您是否可以购买自己的硬件以在内部运行?你的数据是什么样的?消耗这些数据的逻辑是什么样的?

您可能会感觉到这里确实没有足够的信息来明确回答这个问题,但我至少可以提供一些建议 .

首先,如果您的数据相对较小并且您的查询很简单,请节省一些麻烦,并确保适当地调整内存参数,因为开箱即用的配置旨在运行在非常微薄的硬件上 . 如果必须使用NoSQL选项,则根据数据的结构,Redis可能是一个不错的选择(它需要了解更多关于您运行的数据结构的信息 . )

如果查询归结为 SELECT * FROM table WHERE primary_key = {CONSTANT} - 不要打扰使用NoSQL - 只需使用RDBMS并学习如何调整dang事物 . 如果您可以在自己的硬件上运行它,那么这是真的 . 如果连接计数很高,请使用读取从站来 balancer 负载 .

Long-after-the-fact Edit (5/7/2013) :我应该付出一些代价,你的I / O性能会很糟糕 . 您可以选择为配置的IOPS支付大笔资金,将一堆EBS卷配合在一起,或者在将WAL同步到S3或类似设备时依赖短暂的存储 . 所有这些选择都很昂贵且难以维护 . 所有这些选项都有不同程度的性能 .

我在最近的一个项目中发现了这个,所以我切换到了Rackspace . 那里的性能大大增加,但我注意到,当我真正需要快速I / O时,我为CPU和RAM资源付出了很多 . 现在我主持Digital Ocean . 所有的事情都令人难以置信地受到了I / O的束缚,所以我只是很好地哼着 .

故事的道德:简介,调整,重复 . 问自己什么是问题,并不断验证你的假设 .