首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入式数据库的电子,反应-本机和NodeJS应用?

嵌入式数据库的电子,反应-本机和NodeJS应用?
EN

Stack Overflow用户
提问于 2018-05-04 10:20:24
回答 1查看 9.5K关注 0票数 5

我有一个javascript应用程序,我已经实现了移动应用程序使用react本机和它的桌面对应使用电子框架。移动应用程序使用反应-天然-方形-储存本机模块保存首选项和数据(5-6表),而电子应用程序使用节点-平方米3

移动应用和桌面应用都有很多功能,但由于使用不同的数据库插件,有很多不同之处。另外,对于桌面应用程序,由于节点-平方米3是一个本机依赖项,我必须分别为Windows和macOS构建应用程序安装程序。好痛啊!

所以,我需要的是一个数据库解决方案,就是:

  • 可嵌入应用程序
  • 与sqlite3相比效率和性能
  • 支持远程数据库的同步。
  • 支持macOS、Windows和Linux
  • 加密在数据库中写入的数据。
  • 跨JS运行时的一致API (Browser / NodeJS / JavascriptCore)

下面是我遇到的那些看起来很吸引人的清单:-

那么,您的建议是什么,以及您如何为您的应用程序实现类似的功能呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-20 21:49:09

我一直在测试PouchDB、RxDB (它依赖于PouchDB和RxJS流进行查询)、领域-JS(像sqlite3这样的原生数据库)、FireStore。NeDB不支持远程同步。

我不会讨论每个数据库的性能度量细节,但是当查询超过20.000项时,PouchDB的内存非常缓慢和繁重(使用indexeddb/websql适配器进行了尝试)。

对于这许多项,RxDB通常要快得多,特别是在订阅查询更改时( indexeddb/websql适配器也尝试过)。此外,模式和迁移也非常方便。

FireStore是一个很好的选择,它提供了非常简单的服务器和客户端组件设置,但是您需要在google上轻松地运行。如果您想要对服务器逻辑进行某种控制,并且您的集合有可自定义的ACL,则firebase函数具有一定的灵活性。速度一直不错,与RxDB不相上下。如果你想要的话,有一个很好的auth模块。

如果您希望能够在客户端进行更大的扩展,而您可能不这样做,或者如果您想要进行复杂的查询,那么我建议您使用类似的领域。您需要像使用sqlite3时一样为每个平台编译,但是有同步、离线持久性、丰富的查询和出色的性能。基于javascript的解决方案(如PouchDB、RxDB或FireStore )根本不可能与sqlite后端竞争,因为大部分计算仍将发生在您宝贵的JS线程中。领域正在对本机库进行大量的繁重工作。我能够像"abc“一样对100.000项进行查询,在不到100毫秒内返回数百个结果,并且没有明显冻结我的UI或大量增加内存使用量。也支持客户端迁移,这很好。

最后,有多个答案: 1.想自己托管所有的东西,而不需要大规模的客户端(您可以通过过滤器与服务器数据的子集同步),RxDB是非常好的,并且附带了一组很好的特性。2.想要非常容易的设置,很好的模块,如auth,服务器功能等,并且不需要客户端的大规模规模(也可以通过过滤器与服务器数据子集同步),FireStore是很棒的。3.需要大量的客户端数据,领域是我的首选。我个人非常不喜欢领域同步平台的定价模型(虽然技术上很酷),但是数据库本身是免费的,也许您可以尝试实现自定义同步。

以我的结果为例,我遇到了一些非常具体的挑战,比如大的、非关系的集合和全文搜索,您的用例可能会有很大的不同。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50172632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档