处理超大型JSON数据集?

时间:2019-03-15 05:55:32

标签: json performance

我有一个方案,其中前端应用程序通过JSON请求调用后端数据库(APP-> API网关-> SpringBoot-> DB)。后端在响应时将返回一个非常大的数据集(> 50000行),大小约为10 MB。

我的前端应用程序具有很高的响应速度和关键任务,我们发现性能问题;应用未响应或超时的前端。什么是解决此问题的最佳设计

  1. 数据库查询无法再规范化。
  2. SpringBoot代码具有内置的缓存。
  3. 由于固有的性质,任何数据都不能遗留下来
  4. 不能进行多次通话,因为需要数据是第一次通话本身
  5. 可以在前端和后端之间建立任何缓存吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

10mb很大,对于您的用户而言可能是不体面的,尤其是在移动使用可能性很高的情况下。

如果可能的话,最好是在后端收集这些数据,最好将其放在磁盘上,然后根据需要仅将必要的数据提供给前端。由于地图需要更多数据,因此您将进一步调用后端。

如果这不可能,则可以使用客户端捆绑程序加载此数据。如果数据更新不是太频繁,您甚至可以将其缓存在前端。这样至少可以防止用户需要重复获取它。

答案 1 :(得分:0)

类似的声音是搜索产生的报告。如果此数据需要相互关联,我将为搜索分配一个ID,然后在服务器上恢复结果。然后根据需要在前端提取该ID的数据。您永远不必一次向客户端发送50,000行...分页数据并根据需要提取。如果您不想分页,它们可以在一个屏幕上显示多少数据?您可以根据服务器在页面上的滚动位置从服务器中提取更多数据。您只需要将行数返回到前端,也许要返回100行数据。这将允许您显示具有正确高度的滚动条。当它们滚动到数据中的某个位置时,您可以从服务器拉出该特定搜索ID的相应偏移量。即使您可以一次性返回所有50,000+行,对于最终用户的设备来说,为功能页加载此类内存听起来也不是很友好。 这表明应该重做一个有缺陷的前端。