随着高流量网站中非 sql 数据库使用率的上升,我有兴趣将它用于我的项目。现在我听说过几个名字,比如Voldermort、MongoDB和CouchDB。但是这些非 SQL 数据库中有哪些是生产就绪的?我看过下载页面,似乎它们都没有准备好生产,因为还不是 1.0 版。除了这 3 个名称之外,还有其他名称可以推荐用于生产吗?
5 回答
生产就绪是什么意思?据我所知,它们都在实时系统上使用。
您应该根据它们提供的功能如何满足您的需求来做出选择。
您还可以将 Tokyo Cabinet 以及 Erlang VM 提供的 mnesia 数据库添加到列表中。
我认为你需要从你的项目需求开始,看看你真正需要什么样的数据库。有许多非关系型DBMS:它们在擅长解决什么样的问题方面存在很大差异。我认为文章您应该超越关系数据库吗?Martin Kleppmann的著作是了解您需要什么的一个很好的起点。还有很多关于类似主题的stackoverflow线程,这些是我的最爱:
当您缩小了实际需要的范围后,您可以更深入地了解替代方案,以了解哪些 DBMS 已为您的用例做好了生产准备。生产准备不是一个是/否的事情:人们可能会成功部署一些解决方案,例如缺乏工具支持 - 在另一个项目中,这可能是不行的。
至于版本号,不同的项目对此有不同的看法,所以你不能只比较版本号。我参与了图形数据库项目Neo4j,即使它已经投入生产使用了 5 年以上,我们仍然没有发布 1.0 最终版本。
我很想回答“使用 SIRA_PRISE”。
这绝对是非 SQL。
它的当前版本是 1.2,这意味着像您这样的人必须肯定认为它是“生产就绪”的。
但也许我根本不应该回答。
很好的文章将 rdbms 与“下一代”进行了比较并列出了一些提供程序:
关系数据库注定要失败吗? http://readwrite.com/2009/02/12/is-the-relational-database-doomed
我会建议你使用Arangodb。
ArangoDB是一个多模型的主要内存数据库,具有用于文档和图形的灵活数据模型。它被设计为“<strong>通用数据库”,提供现代 Web 应用程序通常需要的所有功能。
ArangoDB应该随着应用程序的发展而增长——该项目可以从一个简单的单服务器原型开始,没有什么是关系数据库做不到的。一段时间后,需要一些地理位置功能,并且购物车需要交易。ArangoDB 的图数据模型对推荐系统很有用。智能手机应用程序需要一个精简的后端 API——这就是 ArangoDB 的集成 Javascript 应用程序框架 Foxx 发挥作用的地方。
另一个独特的特性是ArangoDB 的查询语言 AQL——它使查询变得强大和方便。AQL 使您能够以可读的格式描述复杂的过滤条件和连接,这与 SQL 的方式非常相似。
您可以通过多种方式对数据进行建模:
- 在键/值对中
- 作为文档的集合
- 作为具有节点、边和属性的图
您可以访问 ArangoDB 中的数据:
- 通过 curl/wget 或浏览器使用通用 HTTP REST API
- 通过ArangoDB 外壳(“arangosh”)
- 使用特定于编程语言的客户端库
ArangoDB 的服务器要求:
ArangoDB在Linux、OS X和Microsoft Windows上运行。它在32 位和64 位系统上运行,但使用32 位系统将限制您使用ArangoDB仅使用大约2 到 3 GB的数据。