我正在考虑使用概念证明来处理大于 10 G 的大量数据,这需要每秒至少 200 次以上的写入和每秒大约 50 次以上的空间相关数据读取。这也是一个不断增长的系统。目前,出于性能原因,我正在考虑将这些大容量数据移动到 NoSql 大表类型的数据库中。
我已经考虑并仔细研究了 MongoDB 和 cassandra。就我的阅读而言,
蒙古数据库: - 似乎有作家锁定问题 - 如果不需要多台服务器,stackoverflow 中的一篇文章建议使用此数据库 - 保存在内存中的索引。所以指数增长越大,据说业绩越差 - 优势是 Mongodb 直接支持空间数据和索引以及查找附近位置等功能, - 我看到这篇文章 Cassandra Or MongoDB For Our Location Based Application建议 mongodb 作为最佳选择
卡珊德拉:
- 似乎是相关数据库中最好的
- 似乎具有出色的写入和读取性能
- 本身不支持空间索引,但这可以通过地理散列进行扩展
我真的很喜欢 mongodb,因为它有良好的文档和对空间数据的直接支持。有没有人在这么大的系统上使用 mongodb 有过不好的经历?我实际上在 mongodb iostat 上看到了很多关于性能的帖子。
如果 mongodb 不适合,有人可以提供一些关于使用 cassandra 进行地理散列的指示吗?我看到了链接http://code.google.com/p/geospatialweb/用于创建哈希。但是还有如何查询等问题?
最佳答案
我意识到这是一个较老的问题,并且我知道它不能直接回答您的问题,但根据您的查询,Cassandra 可能不是最佳选择,并且让您的查询与 MongoDB 中的索引一起使用可能会有问题以及(根据我自己的经验)。 Mongo 在大量地理数据和查询方面比 Cassandra 稍有优势。
我建议还考虑研究 ElasticSearch,这取决于您的数据形状和您将要进行的查询类型可能是最好的解决方案。不过,当您发布您的问题时,它的选择可能比今天少。
https://stackoverflow.com/questions/7903712/
相关文章:
javascript - "use strict"在 JavaScript 中做了什么,背后的原因是
javascript - 如何检查字符串是否包含 JavaScript 中的子字符串?
javascript - 如何从 JavaScript 对象中删除属性?
javascript - 如何检查元素是否隐藏在 jQuery 中?
javascript - var functionName = function() {} vs f
javascript - 在 JavaScript 中深度克隆对象的最有效方法是什么?