我应该针对这种特定情况使用什么数据库引擎?

时间:2011-10-19 10:34:56

标签: php mongodb amazon-ec2 couchdb amazon-simpledb

我目前正在使用Amazon SimpleDB。但是,由于成本的原因,我认为它的价格太贵了。

我有一个m1.small Amazon EC2实例,可以很好地运行前端Web服务器。在我的单个SDB域中,我有四个属性(其中两个我可以删除,因为它们有我现在很少需要的数据)和项目名称。我只执行getAttribute查询(没有选择)。基本上,项目名称是我用来查找数据的。

每秒大约发生20次读取和8次写入。盒子的使用率非常高,这增加了我的成本。

哪个是最好的数据库选择,托管在t1.micro实例上(因为它是唯一便宜且低级别的64位实例,而其他64位实例太贵了)?

Redis / MongoDB / CouchDB还是什么?是否有可能主持一个数据库服务器,可以在如此小的实例上维持我上面提到的负载?

1 个答案:

答案 0 :(得分:1)

由于其他原因,我已将部分数据库从 SimpleDB 迁移到 MongoDB

但是,我想继续使用数据库的托管模型。因此,我现在使用的是MongoHQ(mongohq.com)和MongoLab(mongolab.com)的组合,而不是使用Amazon SimpleDB。

他们也有免费套餐,不是基于流量,而是基于数据库的大小。您需要根据要处理的数据量来分析成本。 在我看来,如果你只使用2个属性,你可以暂时使用免费套餐( MongoLab.com对免费套餐有250Mb的限制

由于这两种托管服务都可以在Amazon EC2中托管,因此它们靠近您的前端,因为它们都在AWS内部,所以您不会产生带宽成本,并且因为您将使用高端,因此将有助于提高性能内部AWS网络。

在性能方面,我认为每秒20次读取和8次写入并不是什么大问题,服务器将负责支持您的应用程序所需的所有周期。

您可以对所有写入进行批处理,并使用不提供响应的默认值来使写入更快。

对于您的读取,请确保正确索引您的集合,它应该运行良好。