什么数据存储技术/解决方案允许非常快速的插入,查找和“选择”

时间:2011-07-09 05:09:46

标签: bigdata datastore

这是我的问题。

我想要摄取大量的数据......现在已有数百万甚至数十亿行。

我一直在使用MySQL,我现在正在使用PostgreSQL。

插入很简单,但在插入之前我想检查特定记录是否存在,如果存在,我不想插入。随着数据库的增长,这项操作(显然)需要更长时间。

如果我的数据在Hashmap中,则查找将是o(1)所以我认为我会创建一个Hash索引来帮助查找。但后来我才意识到,如果每次我都要大量减慢进程,我必须再次计算Hash(如果我不计算索引,我就没有o(1)查找)。

所以我处在一个quandry,有一个简单的解决方案吗?还是一个复杂的?我很乐意尝试其他数据存储,但是我需要能够进行相当复杂的查询,例如类似于带有WHERE子句的SELECT语句的东西,所以我不确定no-sql解决方案是否适用。

我是一个非常新手,所以如果有一个简单的解决方案,我不会感到惊讶。

2 个答案:

答案 0 :(得分:2)

Nosql商店适合处理大量插入和更新

MongoDB具有基于文档是否存在的更新/插入(称为upsert)的非常好的功能。

从mongo doc

查看此页面

http://www.mongodb.org/display/DOCS/Updating#Updating-UpsertswithModifiers

您也可以在mongo连接中查看安全模式。您可以将其设置为false以提高插入效率。

http://www.mongodb.org/display/DOCS/Connections

答案 1 :(得分:1)

您可以使用CouchDB。它没有SQL,所以你不能自己做查询,但你可以创建设计文档,允许你在数据上运行map / reduce函数。