无服务器数据库使其易于构建和扩展您的应用程序,因为它们会抽象基础基础架构并自动扩展以满足您的应用程序的需求。无服务器数据库可让您专注于代码,而不必担心能力计划,基础架构维护和服务器管理。
无服务器数据库有很多选项,包括诸如DynamoDB和较新产品(例如Mongo Atlas和CockroachdB无服务器)等已建立的解决方案。本文比较常用的无服务器数据库,因此您可以在为项目选择新数据库时做出明智的决定。
MongoDB(Mongo Atlas)
mongoDB是一个广泛使用的NOSQL数据库。 MongoDB Atlas提供了提供的托管服务以及无服务器产品。在本文中,我们将比较无服务器产品。
MongoDB Atlas提供了MongoDB的完全管理的无服务器实例。与Mongo Atlas一起,您不必自己管理任何基础架构。
http的连接
Mongo Atlas允许您的应用程序通过HTTP连接连接到数据库。
多区域可用性
默认情况下,MongoDB地图集部署在一个区域中。但是,MongoDB地图集可以自动复制多个服务器的数据,以提高可靠性和可用性。它是部分自动化的,您将需要先验了解碎片和复制。
``架构设计(无模式,非相关)
mongoDB是灵活的,适用于结构化和非结构化数据。与关系数据库不同,MongoDB不支持外国密钥连接。由于这种建模,Mongo可能会很棘手。在MongoDB中还有其他方法可以解决这个问题。回顾this thread在MongoDB中了解有关数据建模的更多信息。
没有冷的开始
如果您有一个大数据库,则MongoDB Atlas簇 可能会有很长的冷启动时间 。
酸交易
默认情况下,在MongoDB或MongoDB Atlas簇中不启用多文件交易。但是,您可以配置MongoDB以基于用例支持多文件酸交易。
DynamoDB
DynamoDB是来自亚马逊的完全管理的NO-SQL数据库。它支持键值和文档数据结构。 DynamoDB具有付费模型,并提供自动尺度。
http的连接
dynamoDB允许通过http。
连接多区域可用性
您可以使用DynamoDB的全局表功能设置多区域可用性。但是,请记住,要正确启动并运行它需要大量的配置。
dynamoDB要求用户选择一个分区密钥,该密钥确定如何在分区之间分组和分发数据。选择此密钥如何影响DynamoDB的可扩展性。透彻了解如何访问数据对于选择最合适的分区键和策略至关重要。
``架构设计(无模式)
dynamoDB在很大程度上没有模式。像许多NOSQL兄弟姐妹一样,DynamoDB缺乏对关系数据的明确支持。它的设计牢记了不正当的架构。 DynamoDB中的文档尺寸也限制为400KB,迫使开发人员将应用程序数据不可解化。
没有冷的开始
DynamoDB没有任何与起始起步有关的问题。
酸交易
DynamoDB交易仅在单个区域内符合酸。 DynamoDB不支持各个区域的强烈一致的读取。
按照本文进行详细比较Fauna and DynamoDB。
蟑螂
像Mongo一样,我们关注的是cockleachdb的无服务器提供,而不是提供的托管服务,因为已提供的服务不可用。
蟑螂是一个分布式SQL数据库系统。它基于一个“蟑螂群”的想法,“蟑螂群”是一组节点,它们共同使用可容忍和高可用性。蟑螂群集中的每个节点都可以服务读写请求,并且群集可以自动从失败中恢复并在整个节点上均匀分配数据。
http的连接
蟑螂支持HTTP上的连接。
多区域可用性
cock虫提供离式多区域的可用性,而无需进一步配置。
â€架模式设计(SQL)
蟑螂具有动态模式。它是关系的,并支持SQL。由于蟑螂是基于传统的RDBMS,因此随着应用程序的增长,可能需要大量工作才能进化非结构化数据。
没有冷的开始
对于大量数据集,蟑螂簇可能会经历冷启动。
酸交易
蟑螂完全支持强大的一致性和酸交易。
动物区系
Fauna是一个无服务器数据库,将NOSQL的灵活性与SQL的关系查询功能和一致性相结合。使用动物群时,您可以在两全其美。它是完全管理的,自动尺度的,不需要基础架构管理。
http的连接
Fauna允许您的应用程序通过HTTP连接到数据库。您可以使用Fauna驱动程序或Fauna的GraphQl接口与数据库进行通信。
多区域可用性
Fauna开箱即用的多区域可用性;它将自动重新跨服务器重新复制您的数据。默认情况下,它在地理区域或全球范围内分布。您始终在地区群体之间获得强大的一致性。动物区系旨在使数据最接近您的用户,从而提高可靠性和可用性。
模式设计(文档相关)
动物群遵循document-relational数据库模型。 将JSON文档的灵活性和熟悉度与传统关系数据库的关系和查询能力相结合。
简而言之,您可以通过动物群获得SQL和NOSQL世界中最好的。由于动物区系数据库的灵活性,随着应用程序的增长,扩展和发展数据模式是毫不费力的。
没有感冒开始
动物区系的冷零开始。
酸交易
产生最激动的动物动物的特征之一是其强烈一致的分布式酸交易引擎。通过实施Calvin协议,动物区系在全球范围内提供了强大的数据。
下面您会找到所有这些无服务器数据库产品的视觉比较。
mongo atlas | dynamodb | 蟑螂 | fauna | |
---|---|---|---|---|
HTTP的连接 | ||||
多区域可用性 | ||||
没有冷启动 | ||||
酸性交易 | ||||
灵活的模式设计 | â€(仅NOSQL) | â€(仅NOSQL) | â€(仅SQL) | (文档关联) |
如果您正在考虑使用动物群,请创建free account(无需信用卡),然后尝试一下。如果您有疑问,可以在Fauna Discord channel或Fauna community forum中伸出援手。