我是一名 .NET 程序员,想看看 RDBMS 的替代方案。目前最成熟的选择是什么(最成熟的驱动程序和数据库中的大多数功能)?
我看过 MongoDB,对此我很满意。
我认为这不是正确的问题。“哪个 NoSQL DBMS 最 X ...”的问题与“哪个 RDBMS 最 X ...”的形式不同
为什么?好吧,NoSQL 并没有真正明确定义。有一些重复出现的特征(分布式、大容量、map/reduce 处理、可扩展、冗余、非关系、无模式),但这些都不是定义特征。说白了,NoSQL 就是一堆技术和产品,每一种都有自己特殊的底层设计目标和适用性。
与传统的 RDBMS-es 的相似之处要清楚得多。
所以我想你应该问问自己,你想达到什么目标?然后寻找与之匹配的产品/技术。
您绝对必须收集您的要求并评估尽可能多的选项。
由于您可能要部署一个需要多年维护的大型系统,因此选择不当的成本非常高;尝试获得整个开发团队的意见,因为这很重要(毕竟需要维护它的是他们)。
运营与发展同样重要;如果可能的话,也要征求你的运营团队的意见。由于基于“nosql”的系统可能涉及许多物理机器,因此如果问题频繁出现,可能需要运维工程师进行大量维护。您的运营团队了解此类系统的工作原理非常重要。
驱动程序(又名客户端库或其他)的成熟度显然可能是一个因素,但我宁愿怀疑它的实际功能更多是一个问题。这些系统都没有相同的行为,并且都提供了具有不兼容接口的不同功能集,这些接口与传统 RDBMS 提供的那些不相似。
除了 Mongo,还有 RavenDB 和 FatDB。我们正在考虑后者,因为该产品还带有一个工作队列......加上支持是基于美国的。