五大首选React Native数据库

译文
数据库
本文在介绍React Native主要特点的基础上,和您讨论了React Native数据库的选择标准,以及目前市场上五大首选产品的各种优缺点、售价和典型用户。

[[393201]]

【51CTO.com快译】由Facebook创建的React Native,是目前广受欢迎的、头部的开源移动应用框架。作为一个跨平台的开发框架,它既能够支持诸如:Android、iOS、tvOS、macOS、Windows、以及UWP等各种系统与智能设备,又允许开发人员只需一次性编写JavaScript代码,便可创建出与各种移动平台相兼容的应用程序。因此,React Native不但有助于节省开发人员的时间,而且能为客户节省开发的成本。

React Native的主要特点

  • 开源。
  • 直观且模块化。
  • 可加速开发进程。
  • 提供强大的社区支持。
  • 支持代码重用。
  • 提供实时重载。

目前,有许多JavaScript类技术公司都围绕着React Native,创建了各种非常实用的技术栈。在进行扩展、甚至是一些小规模的应用项目中,移动开发人员需要慎重地选择技术栈。这其中就包括了对于React Native数据库的选择。毕竟,他们需要将开发的应用程序,处理和存储在一个安全有效的数据库中。下面,让我们来一起讨论有哪些因素和标准,值得我们在选择React Native数据库时,予以全面考虑。

1.内存的处理能力

显然,如果数据库在处理数据方面效率不高,就会直接导致React应用程序频繁出现崩溃的情况。对此,大多数React Native数据库会定期清理其缓存,以确保能够剩余足够的内存可供访问,进而保证应用程序的平稳运行。

2.冲突的处理能力

由于移动应用需要通过与系统的协作,来实现相关功能,因此为了事先解决好可能引发的数据冲突,React Native数据库应当能够在其存储库或网站上,共享其冲突管理的规则。有专家建议,我们可以通过浏览待选数据库的文档,以了解它们会如何管理同步、冲突、以及它们会对React应用程序产生何种影响。

3.应用数据的复杂性

React Native数据库在处理各种复杂应用架构和代码方面的能力,直接决定了它是否能够协助开发者创建出可扩展的、面向未来的React应用。因此,在预算许可的前提下,请选择高效的React Native数据库,来管理丰富的对象、文档等复杂的数据结构。

4.能否同步脱机数据

诚然,如今我们已习惯了通过流畅的网速,随时随地加载并使用移动应用。但是,在某些非常情况下,一旦出现了断网或网速受限,那么移动应用则需要提供相应的脱机服务。为此,您所选择的React Native数据库,应当能够在用户再次恢复网络连接时,提供脱机数据的同步。

5.易于使用

为了能够将复杂的数据管理过程化繁为简,React Native数据库应当易于设置、提供工具、并便于使用。

五大首选React Native数据库

在了解了React Native数据库的选择因素和标准后,我们来讨论目前市场上较为流行的五大首选React Native数据库:

1. Amazon DynamoDB

Amazon DynamoDB旨在为功能齐全、且被托管的NoSQL数据库提供服务。它运行在Amazon的AWS云端,并且是完全去中心的。由于具有水平扩展能力和成本效益的特性,因此用户在使用Amazon DynamoDB时,只需要为存储和I/O的吞吐量支付费用。

Amazon DynamoDB的主要特点

  • 能够执行具有强一致性的读取。
  • 能够快速读取与写入数据。
  • 可以根据吞吐量进行扩/缩容。
  • 是一项全面的托管服务。
  • 可执行各种并行筛选(parallel screens)。
  • 能够自动生成UUID。
  • 提供全局二级索引。
  • 提供本地二级索引。
  • 通过“点击按钮即可扩展(Push-button scaling)”的功能,可确保在不造成任何停机的前提下,对数据库进行在线扩/缩容。

Amazon DynamoDB的优点

  • 易于设置。
  • 提供Non-hourly计费模式。
  • 支持各种数据流。
  • 支持生存时间(Time-to-Live,TTL)功能。

Amazon DynamoDB的缺点

  • 仅提供较弱的查询模式。
  • 成本难以预估。
  • 服务器端更新不及时。

售价

为了避免价格估算的复杂性,Amazon DynamoDB在其网站上提供了一个方便成本计算的工具,可让用户在配置每个组件,并在定制软件包服务时,粗略地估算总成本。当然,随着应用程序存储数据量的增多,DynamoDB对于成本消耗也会逐步攀升。

谁在使用Amazon DynamoDB?

  1. Netflix
  2. Lyft
  3.  Amazon
  4. The New York Times
  5. Medium.com
  6. Delivery Hero

2. MongoDB

MongoDB是一个开源的服务器端React Native数据库。它在构建之初就考虑到了可扩展性和复杂的应用程序。通过采用动态模式,MongoDB在JSON文档中,将键-值存储与关系型数据库相结合。如果您的React应用程序需要处理大量数据,那么就可以使用MongoDB,在不影响React Native应用正常运行的情况下,修改其架构。MongoDB并不使用诸如SQL之类特定的域语言(domain-specific languages),而是仅使用简单的JavaScript接口,进行查询。

MongoDB的主要特点

  • 可按需优化查询,并执行实时分析。
  • 其复制功能可提高数据的稳定性和可用性。
  • 适当的索引可以更好地执行查询。
  • 支持负载均衡。
  • 可实现数据分片(Sharding)。

MongoDB的优点

  • 提供灵活的数据库。
  • 可实现数据分片。
  • 提供高可用性。
  • 高速快捷。
  • 提供可扩展性。
  • 支持按需查询。
  • 提供技术支持。
  • 支持简易的环境。

MongoDB的缺点

  • 内存使用率较高。
  • 不支持联合查询。
  • 嵌套功能有限。
  • 数据大小受限。

售价

MongoDB为共享集群、专用集群和专用多区域集群,提供如下三种不同的定价方案。

在价格上

  • 共享集群-免费。
  • 专用集群-每月$57。
  • 专用多区域集群—每月$95。

在存储上

  • 共享集群-512 MB到5 GB。
  • 专用集群-10 GB至4 TB。
  • 专用多区域集群-10 GB至4 TB。

在内存上

  • 共享集群-共享。
  • 专用集群-2 GB至768 GB。
  • 专用多区域集群—2 GB至768 GB。

谁在使用MongoDB?

  1. Uber
  2. Lyft
  3. Alibaba Travels
  4. Accenture
  5. Delivery Hero
  6. Trello

3. Firebase

由Google创建的Firebase平台,可用于创建移动和Web应用。它最初是一家成立于2011年的独立公司,Google于2014年将其作为支持React Native的NoSQL数据库予以了收购。由于非常适合对于数据同步和脱机数据的修改需求,因此Firebase可以很好地处理React Native应用中MVC(Model View Controller)架构的“M”(模型)和“C”(控制器)。

Firebase的主要特点

  • 对报告不做限制。
  • 能与其他服务相集成。
  • 支持受众细分(Audience Segmentation)。
  • 提供数据库管理。
  • 支持文件存储。
  • 具有云代码。
  • 可扩展主机。
  • 支持机器学习。

Firebase的优点

  • 便于实现实时的后端。
  • 提供快速响应。
  • 具有出色的文档。
  • 支持快速原型制作。
  • 可实时同步。
  • 易于安装。
  • 安全性非常到位。

Firebase的缺点

  • 对iOS功能的支持较为有限。
  • 成本价格难以预测。
  • 查询功能较为有限。
  • 易被供应商锁定。
  • 数据迁移可能存在问题。
  • 无法在Google服务不可用的国家和地区被使用。

售价

Firebase有两种定价计划--Spark和Blaze

  • 火花版(Spark Plan):作为免费版本,大量用户可以为整个网站或应用设置数据库、消息传递的验证、具有SSL的自定义域、以及各种云端功能。
  • 火焰版(Blaze Plan):可用于较大规模的应用,属于“按需付费”模式,即:用户只需按照实际使用到的Firebase存储进行支付。当然,其中也会包含一些日常的费用。Firebase独家提供直观的上限设置和预算报警功能,以免用户在使用中超额。

谁在使用Firebase?

  1. Atlassian
  2. Wishlist
  3. Athelas
  4. Studemy

4. SQLite

作为一种C语言库,SQLite平台最初旨在为用户提供,创建移动应用的本地存储数据库。由其名称中的“lite”可知,它属于轻量级,仅包含最小的设置功能。SQLite使用可添加的数据管理工具,来执行大多数SQL策略。它通过免费且能够在公共领域中使用的方式,来吸引广大开发人员。

SQLite的主要特点

  • 几乎实现零配置。
  • 属于无服务器(ServerLess)的一种。
  • 使用单个数据库文件。
  • 具有稳定的跨平台数据库文件。
  • 提供可读的源代码。
  • 具有SQL语言扩展。

SQLite的优点

  • 轻量级。
  • 可移植。
  • 免费。
  • 简单。
  • 能与TCL集成。
  • 已预装在iOS和Android上。

SQLite的缺点

  • 默认限制为2 GB。
  • 不支持多客户端的并发访问。
  • 最大数据库限制为140 TB。
  • 最大可添加的数据库为125个。

售价

SQLite可供公共领域免费使用。如果贵组织想要获得版权(防侵权)许可证,则需一次性支付6000美元。

谁在使用SQLite?

  1. Alibaba Travels
  2. Accenture
  3. Adidas Runtastic
  4. Typeform

5. Realm

作为一个面向对象的开源数据库,Realm的运行速度比大多数关系型数据库要快上十倍。由于能够处理实时和脱机应用中的复杂数据类型,因此开发人员可以将它用于React Native项目中。Realm不需要任何键-值存储,甚至不需要与对象相关的映射(object-related mapping)。与市场上大多数React Native数据库相比,Realm不但自带搜索引擎,而且可以高效地修复查询。因此,它是大型React Native应用的一种理想选择。

Realm的主要特点

  • 可创建响应式移动应用(Reactive Mobile App)。
  • 可实现并发控制。
  • 带有面向对象的数据模型。
  • 提供用于同步的日志组件。
  • 提供查询界面。
  • 带有存储架构。

Realm的优点

  • 专为离线使用而设计。
  • 专为移动设备而设计。
  • 对开发人员来说比较直观。
  • 提供完全加密。
  • 开源。
  • 可以跨平台使用。
  • 支持数据同步。

Realm的缺点

  • APK的体积较大。
  • 会使用更多的内存。
  • 无法自动递增(Auto-increment)。
  • 对模型的类别有所限制。

售价

Realm的普通版本是完全开源且免费的,其专业版的价格为1750美元。如果您想使用由它提供的React Native数据平台、各种软件包的话,则需每月支付1750美元。

谁在使用Realm?

  1. Discontinuity
  2. Patreon
  3. Araclx
  4. Kargo Client Dashboard

小结

综上所述,五种React Native数据库各有利弊。您可以根据自己手头的实际项目特征,在充分了解其相关文档和社区反馈的基础上,有针对性地选择一、两款进行试用。

原文标题:5 Most Preferred React Native Databases,作者:Ronak Patel

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2022-04-24 08:00:00

开发UI组件

2013-04-10 17:39:52

数据库安全

2017-11-13 10:22:21

2021-09-01 20:37:59

云数据库云计算迁移

2017-04-19 22:58:28

MySQL分布式数据

2012-08-14 10:04:26

VMware数据库管理云计算

2019-11-27 14:16:18

SQL数据库数据库基础

2021-01-13 15:13:07

Python开发 工具

2011-03-11 08:53:06

DB2Oracle

2013-08-07 10:23:58

MySQL运维数据库运维

2011-07-19 18:13:15

高效数据库

2019-08-28 15:15:00

腾讯云数据库

2010-10-09 09:31:26

2021-03-07 16:35:37

图形数据库数据库

2022-08-30 07:37:50

分布式数据库互联网

2010-11-29 14:29:47

2010-02-02 09:02:01

Oracle数据库机Oracle Exad

2019-06-04 10:40:07

2021-08-31 11:06:28

嵌入式数据库MySQL

2018-03-18 15:17:58

点赞
收藏

51CTO技术栈公众号