数据库通常存储有关个人的数据,如客户或用户。例如,网络娱乐平台使用数据集存储客户数据,例如姓名,电子邮件地址和客户行为。这些数据用于向用户推荐内容和改善用户体验。数据库是存储数据以改善桌面,移动和Web等应用的关键。需要一个存储空间,在该空间中,我们可以保存和控制数据,以便每个应用程序都可以获取相同的数据。Firebase提供Firestore和Firebase实时数据库。这些数据库是基于云的,支持实时数据同步的客户端可访问的解决方案。
实时数据库
这是Firebase的第一个数据库。它是一个低延迟的解决方案,非常适合需要在客户端连续状态间同步的移动应用。它是一个云托管的数据库,其中数据存储为JSON并实时同步到每个连接的客户端。
云Firestore
云Firestore是来自Google的创新的云托管NoSQL数据库,允许开发人员轻松地控制其数据。它具有直观和自然的元素,用于存储,同步和查询Web和移动应用程序开发的数据。
Firestore提供了方便性和可扩展性,具有智能缓存功能,存储最常用的查询,从而降低数据访问的延迟。开发团队也可以从实时能力(同步)和查询中的离线支持的集成中受益。
其实时功能在进行更改时使数据更新到连接的客户端。这意味着无论文档存储在何处,用户都可以始终访问其最新可用版本。
实时数据库或云Firestore之间的区别
差异基础 | 实时数据库 | 云 Firestore |
---|---|---|
离线支持 | 它额外支持在用户之间的数据实时同步。这意味着在一个设备上所做的更改将在所有相关设备上连续更新。 | 它具有离线支持,允许用户在脱机状态下存储数据并在重新连接时将其同步到服务器。它还提供智能缓存,因此查询可以经常保存以便需要快速访问。 |
扩展性 | 扩展性系统不是自动的;我们需要自行扩展。它可同时扩展约 200k 个连接,在单个数据库中提供每秒 1k 个写入,并且实时数据库每秒提供的写入没有限制。 | 这个扩展过程是自动的,并且 Firebase 全部自动完成。在云 Firestore 中,它可以扩展到一次超过 1 百万个连接,使您每秒可获得 10k 次写入。此外,Firebase 会从此刻起逐步增加这个限制。但是,云 Firestore 在写入每个文档或文件上有一个限制。 |
数据模型 | 这个数据库将数据存储在一个大的 JSON 树中,这就是为什么小或简单的数据容易存储。但是,当规模化时,复杂和基于层次结构的数据很难或难以组织。 | 这个数据存储为记录的集合,小数据存储在类似于 JSON 的记录中容易存储。另一方面,云 Firestore 的复杂和基于层次结构的数据很容易在规模上进行配置。您可以在报告中包含子集合,并且云 Firestore 需要较少的规范化。 |
无线和事务 | 它提供了基本的写入和事务操作,如通过更新和设置操作写入数据,在这里事务是在明确的数据子树上进行的。 | 它提供了先进的写入和响应操作,例如通过更新和设置操作编写数据。您可以使用高级转换,例如数组和数字操作等。交易可以自动在数据集的任何部分进行写入和读取数据。 |
性能和可靠性 | 这是一个单个区域的解决方案。在单个区域中,数据集仅限于区域可用性。它提供低延迟。它是适用于使用实时平衡的应用的最佳选择。 | 这是一个多区域的解决方案,这意味着它可以自动扩展。请在不同地区的多个数据中心之间共享您的数据,以确保全球灵活性,并为我们提供主要的优势领域。它还提供世界各地的区域和多区域配置。 |
安全 | 验证和授权是分离的。通过 Firebase 实时数据库规则从可移植 SDK 中进行编写和读取规则。您可以使用有效的规则轻松地独立验证数据。 | 验证和授权是分离的。从 Firestore 安全规则中编写和读取可移植 SDK 中的写入和读取规则。这里的规则可以限制查询,因为如果查询结果可能是用户无权访问的数据,则整个查询将失败。 |
结论
在选择 Firestore 与实时数据库的应用程序时,需要考虑几个因素。根据您正在处理的数据的大小、所需操作、可用性需求或需要脱机查询,其中一个可能更合适。但是,两者都是强大的事务系统,最终都不适用于您企业的逻辑需求。这就是 Estuary 从 Firestore 中提供连续更改数据捕获连接器的原因。您可以在同一 Firebase 应用程序或项目中使用两个数据库。NoSQL 数据库可以存储相同的数据,用户库的工作方式也是一样。