a2521298 发表于 2021-7-14 17:54:44

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



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

mxa1022 发表于 2021-7-14 19:15:03

枚举循环要好一点

小蜗牛 发表于 2021-7-14 19:44:28

去重可以用哈希表呀

a2521298 发表于 2021-7-14 20:15:00

小蜗牛 发表于 2021-7-14 19:44
去重可以用哈希表呀

我需要入库多终端使用

b0y 发表于 2021-7-14 21:36:22

换个方法去重.

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 的。

a2521298 发表于 2021-7-15 08:22:47

0晨鹤0 发表于 2021-7-14 22:45
没太看懂你的具体需求。

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

我是上头出新数据然后调用这个方法来对比数据库里面的去重, 需要单条单条对比,虽然是在线程里面,但是还是太慢了

0晨鹤0 发表于 2021-7-15 09:37:24

a2521298 发表于 2021-7-15 08:22
我是上头出新数据然后调用这个方法来对比数据库里面的去重, 需要单条单条对比,虽然是在线程里面,但 ...

还是不懂。但是可以给你一个方案,数据库查出后转成set,不要用列表。然后通过判断set中是否含有某元素就行了。也就是楼上说的哈希表。

weilai 发表于 2021-7-15 09:54:44

我也看不懂,取出数据库数据一条一条对比有什么意义?虽然我没有用过redis数据库,但是数据库的优势不就是cha询快吗?直接cha询数据库没有重复的添加,有的不管不就行了,为何还要取出来一条条对比,意义何在?

67564226 发表于 2021-7-15 10:10:38

数据库不都有查重, 去重,删重功能吗?MYSQL,MS ACC 我用得比较多,都有这个功能的。
页: [1] 2
查看完整版本: 请问这个去重循环有没有优化空间或者更好的写法