我正在设计一个系统,需要处理具有不同类型值(日期,文本,数字,地理位置,数组)的各种字段的过滤/搜索。
写入将每隔几个小时发生一次,大量(10K行)。阅读将是连续的。
哪种数据库解决方案适合这些需求?
我查看了一些像MongoDB或CouchDB这样的NoSQL解决方案,但我觉得他们一次过滤几个属性会有问题。
答案 0 :(得分:1)
写入是仅插入还是包含更新?
CouchDB批量插入非常适合一次插入大量数据。如果进行插入,增量映射reduce将正确地重新计算视图,因此读取效率非常高。但是,您需要为所有内容定义视图,这些视图并不像编写MongoDB查询那么容易。
另一方面,在MongoDB中,您可以定义索引并使查询更灵活。另外,如果你想在MongoDB上插入后仍然可以运行MapReduce批处理作业,但那些不会是增量的,这意味着你需要在每次插入后重新运行整个数据集上的作业。
您可能知道,这两个数据库也支持空间数据,因此非常适合您。此外,如果CouchDB对您来说不够快,并且您的服务器有足够的资源,您可以切换到couchbase。
一般来说,感觉就像你的用例非常适合CouchDB - 很少写入介于两者之间 - 但很难用你提供的这些小信息给出一个明确的答案。