【问题标题】:Database alternatives for react web applicationReact Web 应用程序的数据库替代品
【发布时间】:2022-12-07 07:51:24
【问题描述】:
我可以为基于 React 的 Web 应用程序获取数据库的可能替代方案吗,它使用其商业智能部门的 API 从 BigQuery 获取数据,数据不是流式传输,并且查询有点复杂,所以我应该将数据获取到 MongoDB 还是什么?类似于基于 NoSQL 的数据库,因为直接从 BigQuery 获取数据需要时间来加载。
提前致谢
P.S 每个页面都有自己的查询,应用程序现在只有表格,可以有图表
我对此很陌生,有人建议使用 Redis,有人建议使用 mongodb
任何帮助,将不胜感激
提前致谢
【问题讨论】:
标签:
reactjs
database
database-design
google-bigquery
nosql
【解决方案1】:
BigQuery 不是网络应用程序的好选择,因为正如您所注意到的,它对查询的响应有点慢。
一旦它开始运行,它的分析处理速度非常快(我们有时称之为 OLAP,而不是 OLTP),这就是你的问题:通常对于 Web 应用程序,你会选择一个 OLTP 数据库,例如 PostgreSQL,它会响应你的查询更快。但这些往往不太适合处理聚合大量表的大型 BI 查询……因此,您在启动时间上获得的收益,可能会在处理时间上损失。
不过,作为第一步,这可能是个好主意;至少使用 postgres,您可以使查询与在 BigQuery 中几乎相同,因此值得进行速度测试。您还可以玩一些优化技巧(例如,您也许可以使用“物化视图”来有效地缓存数据库中某些复杂查询的结果)。
Redis 是一种在内存中运行(因此速度很快)和is often used as a cache 的专业数据存储。正如我所说,缓存查询结果并不是解决此问题的好方法,但除非您确实需要它,否则我不一定会直接使用带有额外移动部分的解决方案 - 我猜您正在想象保留 BigQuery 但使用 Redis缓存结果?
(我不认为 MongoDB 在这里有多大意义。您正在处理结构化数据,而 Mongo 是一个非结构化文档存储。我想您可以将它用作缓存,但这不是它的主要用例。)