我对非关系数据库真的很感兴趣,但由于许多原因只熟悉其中的一小部分。因此,我想列出您在基本用例中使用的所有 NoSQL 技术、优缺点。
如果您在工作中遇到一些具体的问题,涉及到一些技术、有趣的经历等,欢迎您与社区分享。
我个人曾与:
蒙古数据库:
用例:如果您需要良好的聚合功能,自动复制,我认为这是最好的之一。规模不错。有许多功能可以像日常使用的数据库一样使用它,如果由于某种原因您不想使用 SQL 解决方案 - Mongo 可能是不错的选择。如果您需要动态查询,mongo 也很棒。还有 mongodb 支持索引 - 这也是一个重要的特性。
优点:速度快、规模大、易于使用、内部地理空间索引
缺点:写入操作相对较慢,阻塞原子操作可能会产生很多问题。消耗内存的进程可能会“吃掉”所有可用的内存。
沙发数据库:
用例:我在 Wiki 喜欢的项目中使用它,我认为这种情况是完美的数据库。每个文档在更新期间自动保存在新修订中的事实有助于查看所有更改。用于累积、偶尔更改的数据,在这些数据上运行预定义的查询。
优点:易于使用,面向 REST 的界面,版本。
缺点:当文档数量很大(超过一百万)时性能问题,有点纯粹的查询功能(可以通过添加 Lucene 来解决)
简单数据库:
用例:这是来自亚马逊的数据服务,是他们提供的所有东西中最便宜的。功能非常有限,因此如果您想使用亚马逊服务,主要用例是使用它,但支付尽可能少的费用。
优点:便宜,所有数据都像文本一样存储 - 操作简单,易于使用。
缺点:非常有限(文档大小、集合大小、属性计数、属性大小)。像文本一样存储所有数据的方式也会在按日期或按数字排序期间产生额外的问题(因为它使用字典排序,在保存日期或数字时需要一些解决方法)。