NoSQL 技术、用例、优势和劣势 [关闭]
Posted
技术标签:
【中文标题】NoSQL 技术、用例、优势和劣势 [关闭]【英文标题】:NoSQL technologies, use cases, strengths and weaknesses [closed] 【发布时间】:2013-01-08 18:21:49 【问题描述】:我对非关系型数据库非常感兴趣,但由于诸多原因只熟悉其中的一小部分。所以我想列出您在基本用例中使用的所有 NoSQL 技术、优缺点。
如果您在工作中遇到一些具体的问题,比如一些技术、有趣的体验等,欢迎您与社区分享。
就我个人而言:
MongoDB:
用例:如果您需要良好的聚合功能,自动复制,我认为这是最好的之一。规模不错。有许多功能可以像日常使用的数据库一样使用它,如果由于某种原因您不想使用 SQL 解决方案 - Mongo 可能是不错的选择。如果您需要动态查询,mongo 也很棒。还有 mongodb 支持索引 - 这也是一个重要的功能。
优点:速度快、规模大、易于使用、内部地理空间索引
缺点:写操作比较慢,阻塞原子操作会带来很多问题。消耗内存的进程可能会“吃掉”所有可用内存。
沙发数据库:
用例:我在 Wiki 喜欢的项目中使用它,我认为对于这种情况,它是完美的数据库。每个文档在更新期间自动保存在新修订中的事实有助于查看所有更改。用于累积、偶尔更改的数据,在这些数据上运行预定义的查询。
优点:易于使用、面向 REST 的界面、版本。
缺点:当文档数量非常大(超过一百万)时性能问题,有点纯粹的查询功能(可以通过添加 Lucene 来解决)
SimpleDB:
用例:这是来自亚马逊的数据服务,是他们提供的所有东西中最便宜的。功能非常有限,因此如果您想使用亚马逊服务,主要用例是使用它,但支付尽可能少。
优点:便宜,所有数据都像文本一样存储 - 操作简单,使用方便。
缺点:非常有限(文档大小、集合大小、属性计数、属性大小)。所有数据像文本一样存储的方式也会在按日期或按数字排序时产生额外的问题(因为它使用字典排序,在保存日期或数字时需要一些解决方法)。
【问题讨论】:
【参考方案1】:卡桑德拉
如果写作是您的主要目标,Cassandra 是完美的解决方案,它旨在写入大量内容(在某些情况下,写作可能比阅读更快),因此它非常适合记录日志。它对数据分析也非常有用。除了 Cassandra 内置了地理分布功能。
优势 由 Apache 支持(良好的社区和高质量),编写速度快,没有单点故障。扩展时易于管理(易于部署和扩大集群)。
弱点 索引实现有问题,按索引查询有一定的局限性,如果使用索引插入性能下降。流数据传输问题。
【讨论】:
以上是关于NoSQL 技术、用例、优势和劣势 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章