使用 JavaScript 解决导入 Excel 数据重复字段的问题。大约 40W 行数据

2020-04-25 20:06:43 +08:00
 cgh
导入的数据大概有 40W 行。每行有八个字段 [ A,B,C,D,E,F,G,H ] 。根据字段 A,B 去重。如果 A 字段或者 B 字段在之前的行已经存在了。则当前行被标记为失败。并且记录与第几行重复了。怎么提升计算速度。。。求大佬解决。
1482 次点击
所在节点    问与答
11 条回复
cydian
2020-04-25 20:13:00 +08:00
40W 行在前端怎么处理都很慢吧。
量太大了给后端处理。
opengps
2020-04-25 20:15:54 +08:00
作为平面文件,直接导入数据库,然后从数据库再执行算法去重
cgh
2020-04-25 20:18:04 +08:00
@cydian 目前的情况是前端已经对数据进行了格式验证。40W 数据大概 18 秒,如果加上对字段的重复判断的话一分钟以内其实都是可以接受的。但是我感觉不只是时间翻倍的问题了,,,
cgh
2020-04-25 20:20:39 +08:00
@opengps 我们需要在页面进行编辑修改。然后在传给后端。。。。导入数据库再显示。时间太久了。
hronro
2020-04-25 20:22:23 +08:00
上 web worker 开多线程,上 WASM
cydian
2020-04-25 22:43:26 +08:00
@cgh 你一旦遇到用户浏览器的性能问题,就凉凉了。
noe132
2020-04-25 22:59:38 +08:00
最快的方式就是针对 A,B 建两个 map
然后一遍遍历过去即可
mooyo
2020-04-25 23:18:35 +08:00
这一个 On 能搞定吧,如果内存够的话不应该很慢阿。
mooyo
2020-04-25 23:19:02 +08:00
只需要读一遍应该就能搞定吧
cocolate
2020-04-26 07:14:09 +08:00
大量数据少量计算就不用上 wasm 了,开个 webworker 防止浏览器卡死应该就行,基础算法就是维护 map,硬核一点就上异或判断,内存占用 O1,但是不知道行数信息。
cgh
2020-04-26 08:52:15 +08:00
@cocolate 你说的这个我有考虑过。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/666052

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX