我有一个javascript应用程序,我已经实现了移动应用程序使用react本机和它的桌面对应使用电子框架。移动应用程序使用反应-天然-方形-储存本机模块保存首选项和数据(5-6表),而电子应用程序使用节点-平方米3。
移动应用和桌面应用都有很多功能,但由于使用不同的数据库插件,有很多不同之处。另外,对于桌面应用程序,由于节点-平方米3是一个本机依赖项,我必须分别为Windows和macOS构建应用程序安装程序。好痛啊!
所以,我需要的是一个数据库解决方案,就是:
下面是我遇到的那些看起来很吸引人的清单:-
那么,您的建议是什么,以及您如何为您的应用程序实现类似的功能呢?
发布于 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.需要大量的客户端数据,领域是我的首选。我个人非常不喜欢领域同步平台的定价模型(虽然技术上很酷),但是数据库本身是免费的,也许您可以尝试实现自定义同步。
以我的结果为例,我遇到了一些非常具体的挑战,比如大的、非关系的集合和全文搜索,您的用例可能会有很大的不同。
https://stackoverflow.com/questions/50172632
复制相似问题