NoSQL技术、使用案例、优点和缺点

5

我对非关系型数据库非常感兴趣,但由于很多原因只熟悉其中的一小部分。因此,我想列出您使用的所有NoSQL技术及其基本用例、优缺点。

如果您在使用某些技术期间遇到了特定问题,有趣的经验等,欢迎与社区分享。


个人使用过:

Mongodb:

用例:对我而言,如果需要良好的聚合功能、自动复制,则是最佳选择之一。适用于大规模操作。具有许多功能,可以像日常使用数据库一样使用,如果出于某种原因不想使用SQL解决方案,则Mongo可能是一个很好的选择。另外,mongo非常适合需要动态查询的情况。此外,mongodb支持索引-这也是重要的功能。

优点:快速,可扩展性好,易于使用,内部地理空间索引

缺点:相对较慢的写入操作,阻塞原子操作可能会带来很多问题。内存消耗过程可能会“吃掉”所有可用内存。

Couchdb:

用例:我将其用于类似Wiki的项目,我认为对于这种情况来说是完美的数据库。每个文档在更新期间自动保存为新版本的事实有助于查看所有更改。用于累积、偶尔更改数据,并运行预定义查询。

优点:易于使用,面向REST接口,版本控制。

缺点:当文档数量相当大(超过50万)时,性能问题比较严重,查询功能不太强大(可以通过添加Lucene来解决)

SimpleDB:

用例:这是Amazon提供的数据服务中最便宜的东西。非常有限的功能,因此主要用例是如果您想使用Amazon服务,但尽可能少地支付费用。

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

缺点:限制很多(文档大小、集合大小、属性计数、属性大小)。所有数据都像文本一样存储的方式也会在按日期或数字排序时创建额外的问题(因为它使用词典排序,需要在保存日期或数字时进行一些解决方案)。

1个回答

3

Cassandra

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接