我有 50-100mb 的数据集,用户需要访问这些数据集。它是静态的,因此为其托管服务器没有意义。我将对数据执行两种操作:
- 通过唯一的 ObjectId 读取对象。每个对象大约 3kb。
- 通过 ~300.000 个字符串进行全文搜索。每个字符串为 4-60 个字符。
我正在考虑将数据存储为 JSON 文件。 300k 字符串将单独存储。我将使用 https://github.com/nextapps-de/flexsearch或类似的东西来对其进行搜索。早在 2016 年,我就用 ~10mb 数据集做过类似的事情。我只使用了正则表达式搜索,它工作得很好。
是否有理由使用 RealmDB、SQLite、PouchDB 或其他东西而不仅仅是 JSON?
最佳答案
我希望我一年前做这个问题...
在我目前工作的办公室里,我们尝试使用 PouchDB 创建一个应用程序并响应 native ,我们基本上将 PouchDB 视为一个优势,因为它不需要我们的 API 在每次刷新时一遍又一遍地发送所有数据用户,它只会发送根据客户端检查点更改的数据。由于服务器中的数据非常庞大(大约 6k 个条目,每个条目超过 200 个属性),我们不惜一切代价尝试简化客户的数据计划。
在这个实现到位几个月后,我们实现了一个具有许多不同选项的搜索功能,用于排序和过滤,不仅我们不得不放弃我们所有的 PouchDB 实现,而且我们必须从头开始用它替换它的所有逻辑索引 JSON 值。 PouchDB 性能极慢,检索结果需要超过 5 秒左右的时间,而我们无法承受在我们的范围内延迟这个时间。
最后,我们完成了在索引 JSON 中运行 flex search
的非常快速的搜索。不要重蹈我们的覆辙,PouchDB 花费了我们太多的预算和宝贵的时间。这是一个糟糕的选择。
不幸的是,我无法从可靠的来源提供证据或更多详细信息,我只能分享我个人的糟糕经历,当时我认为我们的项目已经接近尾声,我们不得不从头开始。一团糟。
关于sqlite - React-native 的纯 JSON 与应用内数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61271071/