大家好,我需要在数据库获取十几万条数据,然后通过得到的这些数据,计算得到十几个参数(统计计算:方差、极差等)。
现在的任务是,需要从前端得到这所有的十几万条数据,以及另外计算得到的十几个参数。其宗问题是,在数据库中获取数据的过程非常慢,大约的两分钟。
现在我有几种解决方案:
- 后端得到这十几万条数据,后端提供一个 api ,用来处理前端的 get 请求,将这些数据发送到前端,然后在前端计算另外的十几个参数。这里有可能占用内存较大,而且需要客户端来完成计算。
- 后端得到这十几万条数据,然后将这些数据存储为一个类的类变量。后端提供多个 api ,首先要有得到十几万条结果数据的 api ,还要有另外的十几个 api 用来分别得到另外十几个参数,也就是说例如需要得到方差的时候,使用类里面存储的十几万条结果实时计算得到。这个设计的问题,可能是这十几万条数据比较占用内存,在后端长期驻留。
- 后端同样提供多个 api ,像上面一样。但是,那十几条参数的 api 都不涉及计算,而是在获取十几万条结果数据的 api 里面计算得到,然后存储到类的私有变量里面。十几条参数的 api 仅仅是这些似有成员的 getter 就可以。这个设计的问题可能是不统一,因为前端必须先调用获取十几万条结果的 api ,才能调用其他的 api ,否则得到的结果是假的结果。但是这个设计对内存友好,因为只是在一个函数里面存储了十几万条数据,等出了这个函数就垃圾回收了。
- 最后一种方案是只提供一个 api ,这个 api 返回一个 json 。 json 里面除了提供十几万条结果数据之外,还提供另外的十几个参数。
描述的可能比较麻烦,非常感谢大家能为我指点迷津!感谢