【发布时间】:2017-09-11 11:20:22
【问题描述】:
我正在研究一些用于开发 Web 应用程序的后端即服务 (BaaS) 解决方案,我经常看到Firebase refers to their database as a "realtime database",而例如Backendless doesn't mention the phrase "real time" anywhere。
我知道实时意味着数据会立即处理,但我认为所有数据库都这样做了?例如,如果我有一个 MySQL/SQLite/PostgreSQL 数据库并插入数据,我希望它可以在(毫秒)秒后进行检索,并且肯定是在“INSERT ...”查询完成后直接检索。
与其他 BaaS 服务“普通”数据库相比,有人能解释一下 Firebase 实时数据库有何不同吗?
【问题讨论】:
-
在该页面上向下滚动一点:“与典型的 HTTP 请求不同,Firebase 实时数据库使用数据同步 - 每次数据更改时,任何连接的设备都会在几毫秒内接收到该更新。提供协作和身临其境的体验,无需考虑网络代码”。客户不必轮询,他们会收到有关数据更改的通知。
-
啊,好吧,所以区别不在于数据存储的速度,而在于数据库可以实时向客户端发送有关更改的推送通知这一事实?例如,使用 Backendless 客户端将不得不手动轮询数据库以查看更改?这是有道理的,但它的名字有点令人困惑......我猜“通知数据库”或“可观察数据库”听起来并不那么吸引人......
-
另一个令人困惑的原因是Wikipedia 说实时数据库使用 "[...] 时序约束来表示数据有效的特定范围的值 i>。这听起来像是实时数据库更像是非持久性临时缓存而不是永久存储解决方案?我想这根本不是 Firebase 用他们的术语的意思吗?
-
另外,如果服务器支持 HTTP 长轮询,那实际上不是一回事吗?
-
它不是“实时数据库”。它是“Firebase 实时数据库”。这只是一个产品名称。您可能很容易想知道“Firebase”是什么。
标签: database firebase-realtime-database backend backendless