大家好,我需要在数据库获取十几万条数据,然后通过得到的这些数据,计算得到十几个参数(统计计算:方差、极差等)。
现在的任务是,需要从前端得到这所有的十几万条数据,以及另外计算得到的十几个参数。其宗问题是,在数据库中获取数据的过程非常慢,大约的两分钟。
现在我有几种解决方案:
描述的可能比较麻烦,非常感谢大家能为我指点迷津!感谢
1
sagaxu Nov 28, 2016 via Android
4 最好
|
2
sarices Nov 28, 2016
大量数据还是服务端运算吧,毕竟浏览器效率提不上去
|
3
lslqtz Nov 28, 2016
只提供一个 api ,这个 api 返回一个 json 。只提供另外的十几个参数。
返回几十万条太费资源,浏览器也容易卡死。 这属于在服务端计算,那么大的数量,建议不要传给客户端耗费带宽。 |
4
kimchan Nov 28, 2016
同三楼...json 把十几万条数据返回......真的大丈夫?
|
5
jimzhong Nov 28, 2016
用任务队列吧,前端先把数据上传给后端,后端开始计算。前端定期 poll 计算状态,直到取得结果。
十几万条数据交给前端浏览器算会消耗很多内存的。 |
6
lrh3321 Nov 28, 2016
对实时性要求不高的话就提前算好,存另一个表里,然后定时更新
|
8
just4test Nov 28, 2016
能描述下是什么业务场景需要把这些数据放在客户端吗?我觉得这个设计从根本上就有问题。
|
11
hujianxin OP |
12
just4test Nov 28, 2016
|
13
kimchan Nov 28, 2016
@hujianxin 具体是怎么个压缩法? 如果压缩后还是很大. 浏览器渲染会很慢. 任务队列是个方法. 另外. 计算结果是否可以放缓存? 还是说计算结果会经常变?
|
14
tomczhen Nov 28, 2016
x-y problem
|
15
shibingsw Nov 28, 2016
x-y problem
|
16
just4test Nov 28, 2016
|
17
windyboy Nov 28, 2016
从前端获得十几万条数据是什么意思?
|
18
Bryan0Z Nov 28, 2016 via Android
几十万条数据压缩一下,也就几兆啊,为啥不能传…
|
19
scys Nov 28, 2016
|
20
scys Nov 28, 2016
感觉楼主要考虑的是后端缓存,前端考虑的是绘制的程度,你确定要绘制那么精细的图表?
没讲过那么精细的图表就是,如果有了缓存,你就可以抽样,比如 1/2 这样返回。 你的 IO 压力减少了,同时各个函数间如果同意用一分缓存,连内存压力也减少了。 前端也能减少数据获取量,你的 CDN 也能减少传输量了。 --- 你究竟遇到啥问题,好像和你数量级没啥关系就是。 |
21
nicevar Nov 28, 2016
不是专业做服务器开发的,有个建议,可以考虑中间用 mongodb 过度,有公司是这样做的
|
24
Miy4mori Nov 29, 2016 via Android
见过一个请求 6mb 的应用,用 ng2 做客户端排序和搜索,除了加载慢点也没啥毛病。客户端崩溃是不太可能的,浏览器还没娇惯到存十几兆数据就崩溃。其实我有一次用 js 读了 1g 的视频文件到内存里都没有崩溃,就是多吃了点内存………
|
25
Miy4mori Nov 29, 2016 via Android
我觉得你要考虑考虑如果这个接口并发高了服务端会不会崩溃
|