V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cgh
V2EX  ›  问与答

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

  •  
  •   cgh · 2020-04-25 20:06:43 +08:00 · 1505 次点击
    这是一个创建于 1709 天前的主题,其中的信息可能已经有所发展或是发生改变。
    导入的数据大概有 40W 行。每行有八个字段 [ A,B,C,D,E,F,G,H ] 。根据字段 A,B 去重。如果 A 字段或者 B 字段在之前的行已经存在了。则当前行被标记为失败。并且记录与第几行重复了。怎么提升计算速度。。。求大佬解决。
    11 条回复    2020-04-26 08:52:15 +08:00
    cydian
        1
    cydian  
       2020-04-25 20:13:00 +08:00
    40W 行在前端怎么处理都很慢吧。
    量太大了给后端处理。
    opengps
        2
    opengps  
       2020-04-25 20:15:54 +08:00
    作为平面文件,直接导入数据库,然后从数据库再执行算法去重
    cgh
        3
    cgh  
    OP
       2020-04-25 20:18:04 +08:00
    @cydian 目前的情况是前端已经对数据进行了格式验证。40W 数据大概 18 秒,如果加上对字段的重复判断的话一分钟以内其实都是可以接受的。但是我感觉不只是时间翻倍的问题了,,,
    cgh
        4
    cgh  
    OP
       2020-04-25 20:20:39 +08:00
    @opengps 我们需要在页面进行编辑修改。然后在传给后端。。。。导入数据库再显示。时间太久了。
    hronro
        5
    hronro  
       2020-04-25 20:22:23 +08:00 via iPhone
    上 web worker 开多线程,上 WASM
    cydian
        6
    cydian  
       2020-04-25 22:43:26 +08:00
    @cgh 你一旦遇到用户浏览器的性能问题,就凉凉了。
    noe132
        7
    noe132  
       2020-04-25 22:59:38 +08:00
    最快的方式就是针对 A,B 建两个 map
    然后一遍遍历过去即可
    mooyo
        8
    mooyo  
       2020-04-25 23:18:35 +08:00
    这一个 On 能搞定吧,如果内存够的话不应该很慢阿。
    mooyo
        9
    mooyo  
       2020-04-25 23:19:02 +08:00
    只需要读一遍应该就能搞定吧
    cocolate
        10
    cocolate  
       2020-04-26 07:14:09 +08:00 via Android
    大量数据少量计算就不用上 wasm 了,开个 webworker 防止浏览器卡死应该就行,基础算法就是维护 map,硬核一点就上异或判断,内存占用 O1,但是不知道行数信息。
    cgh
        11
    cgh  
    OP
       2020-04-26 08:52:15 +08:00
    @cocolate 你说的这个我有考虑过。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2694 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:56 · PVG 22:56 · LAX 06:56 · JFK 09:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.