递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库

请问这个去重循环有没有优化空间或者更好的写法

查看数: 7063 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-7-14 17:54

正文摘要:

上面是JSON解析出来的数据,循环解析单次50条数据大概要花3秒,可以接受,到这边redis入库去重,去重的时候执行完毕大约11-13秒,有点难搞,大佬们有没有好的方法? ...

回复

a2521298 发表于 2021-7-15 10:45:18
确实我思路错了,REDIS可以直接cha询是否重复。。。 根本没必要一条一条来
67564226 发表于 2021-7-15 10:10:38
数据库不都有查重, 去重,删重功能吗?  MYSQL,MS ACC 我用得比较多,都有这个功能的。
weilai 发表于 2021-7-15 09:54:44
我也看不懂,取出数据库数据一条一条对比有什么意义?虽然我没有用过redis数据库,但是数据库的优势不就是cha询快吗?直接cha询数据库没有重复的添加,有的不管不就行了,为何还要取出来一条条对比,意义何在?
0晨鹤0 发表于 2021-7-15 09:37:24
a2521298 发表于 2021-7-15 08:22
我是上头出新数据  然后调用这个方法来对比数据库里面的去重, 需要单条单条对比,虽然是在线程里面,但 ...

还是不懂。但是可以给你一个方案,数据库查出后转成set,不要用列表。然后通过判断set中是否含有某元素就行了。也就是楼上说的哈希表。
a2521298 发表于 2021-7-15 08:22:47
0晨鹤0 发表于 2021-7-14 22:45
没太看懂你的具体需求。

redis 的 set 集合本来就是唯一的 不需要去重呀。直接 SADD my {value} 就行了。 ...

我是上头出新数据  然后调用这个方法来对比数据库里面的去重, 需要单条单条对比,虽然是在线程里面,但是还是太慢了
0晨鹤0 发表于 2021-7-14 22:45:30
没太看懂你的具体需求。

redis 的 set 集合本来就是唯一的 不需要去重呀。直接 SADD my {value} 就行了。、
比如执行 SADD my test1;  SADD my test2; SADD my test1。
最后 my 集合只有两个元素:test1 和 test2,不会出现两个 test1 的。
b0y 发表于 2021-7-14 21:36:22
换个方法去重.
a2521298 发表于 2021-7-14 20:15:00
小蜗牛 发表于 2021-7-14 19:44
去重可以用哈希表呀

我需要入库  多终端使用
小蜗牛 发表于 2021-7-14 19:44:28
去重可以用哈希表呀

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-9-27 08:33 , Processed in 0.090910 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表