针对900,000行数据库的最佳云托管数据库解决方案,必须每天更新?

时间:2011-06-13 01:52:50

标签: mysql mongodb cloud couchdb database

我们处理的公司每天向我们发送约900,000行CSV产品清单。

我希望将其存储在云中,其他人处理修补,管理等。底层引擎无关紧要(mysql,sql server,mongo couchdb等)。

但主要要求是有一些方法可以自动从CSV刷新和加载数据库,而无需每天执行900,000个INSERT语句或等效语句。与SQL Server一样,我们可以使用bcp,或者使用mySQL,我们可以使用mysqlimport。每天的列表变化如此之大,今天与昨天的差异是没有意义的。

每天只会查询400-500次而不是同时查询。只需一次性查询,每天约400-500次。但数据必须全部存在并每日更新。

有什么建议吗?我们正在研究mongohq,windows azure,xeround等等。

3 个答案:

答案 0 :(得分:2)

如果每天只有4-500个查询,您是否可以控制它们何时发生?根据今天的标准,900,000行并不是很多。

如果是我,我只需将表加载到名为table_new的现有数据库中,然后一旦加载,我将原始表重命名为table_old,最后将table_new重命名为表。

您的切换时间最短,并且您没有等待表加载的停机时间。在加载时,原始表仍在播放中。最后,当它完成后,删除table_old。

如果您与重命名表有关系,那么最简单的解决方案就是将其删除以进行生产。让它们继续进行开发和测试,但只是努力确保关系始终保持一致,因此数据库不需要。没什么大不了的。

现代SQL数据库支持这一点,真的不能说其他人。

答案 1 :(得分:0)

您也可以尝试使用mongolab

答案 2 :(得分:0)

我会选择MongoDB。有很多MongoDB hosting options包括云服务 Mongo有一个批量导入工具mongoimport,可以直接从CSV文件加载数据。

根据记录的大小,将大约一分钟的时间导入到MongoDB中,然后再过一分钟左右,为查询创建必要的index

要最大程度地减少停机时间,请导入新的集合products.import,然后导入完成后,删除旧的products集合并将products.import重命名为products