我正在考虑一个概念证明来处理大于 10 G 的大量数据,这需要每秒至少 200 次以上的写入和每秒大约 50 次以上的空间相关数据读取。这也是一个不断增长的系统。目前,出于性能原因,我正在考虑将这些大容量数据移动到 NoSql 大表类型的数据库中。
我已经考虑并仔细研究了 MongoDB 和 cassandra。就我的阅读而言,
Mongodb: - 似乎有写入器锁定问题 - 如果不需要多个服务器,stackoverflow 中的一篇文章建议使用此数据库 - 索引保存在内存中。因此,索引增长越大,据说性能会下降 - 优势是 Mongodb 直接支持空间数据和索引以及查找附近位置等功能 - 我看到这篇文章Cassandra Or MongoDB For Our Location Based Application建议使用 mongodb作为最佳选择
Cassandra:
- 似乎是相关数据库中最好的 - 似乎具有出色的写入和读取性能 - 本身不支持空间索引,但这可以通过 geohashing 扩展
我真的很喜欢 mongodb,因为它有良好的文档和对空间数据的直接支持。有没有人在这么大的系统上使用 mongodb 有过不好的经历?我实际上在 mongodb iostat 上看到了很多关于性能的帖子。
如果 mongodb 不适合,有人可以提供一些关于使用 cassandra 进行地理散列的指示吗?我看到了用于创建哈希的链接http://code.google.com/p/geospatialweb/ 。但是有关于如何查询等的问题?