NoSQL技术,用例,优点和缺点

Ph0*_*n1x 5 database scalability bigdata nosql

我非常感兴趣的是非关系型数据库,但由于很多原因只熟悉它的一小部分.所以我想列出你使用的所有NoSQL技术的基本用例,优缺点.

如果您在使用某些技术,有趣的经验等工作期间遇到一些具体问题,欢迎您与社区分享.


我亲自工作过:

MongoDB的:

使用案例:如果您需要良好的聚合功能,自动复制,我认为是最好的之一.规模很大.有许多功能允许使用它像日常使用数据库,如果由于某种原因你不想使用SQL解决方案 - Mongo可能是最好的选择.如果你需要动态查询,mongo也很棒.还有mongodb支持索引 - 这也是重要的功能.

优点:快速,良好的规模,易于使用,内部地理空间索引

缺点:相对较慢的写入操作,阻止原子操作可能会产生很多问题.内存消耗过程可以"吃掉"所有可用内存.

CouchDB的:

用例:我在Wiki喜欢的项目中使用它,我认为这个案例是完美的数据库.每个文档在更新期间自动保存在新版本中的事实有助于查看所有更改.用于累积,偶尔更改数据,以运行预定义的查询.

优点:易于使用,面向REST的界面,版本.

缺点:当文档数量非常庞大(超过五十万)时,性能有问题,有点纯粹的查询功能(可以通过添加Lucene来解决)

SimpleDB的:

Usecases:这是亚马逊的数据服务,是他们提供的所有东西中最便宜的.功能非常有限,因此如果您想使用亚马逊服务,主要用例是使用它,但可以尽可能少地付费.

优点:便宜,所有数据都像文本一样存储 - 操作简单,易于使用.

缺点:非常有限(文档大小,集合大小,属性计数,属性大小).所有数据像文本一样存储的方式在按日期或按数字排序时也会产生其他问题(因为它使用词典排序,在保存日期或数字时需要一些解决方法).

sil*_*der 3

卡桑德拉

如果写入是您的主要目标,Cassandra 是完美的解决方案,它设计用于写入大量数据(在某些情况下写入可能比读取更快),因此它非常适合日志记录。它对于数据分析也非常有用。除了 Cassandra 内置了地理分布功能之外。

优点Apache支持(良好的社区和高质量),写入速度快,无单点故障。扩展时易于管理(易于部署和扩大集群)。

缺点索引实现有问题,索引查询有一定限制,如果使用索引插入性能会下降。流数据传输问题。