
1 holajamc 2018 年 12 月 26 日 虽然我不懂你说了什么,但是 INSERT 数据难道 ID 不应该自增? |
&nbp; 2 bestie 2018 年 12 月 26 日 不懂你说了什么,插了数据当然会自增,不知道你是怎么判断重复的,重复的跳过就是了 |
3 Vegetable 2018 年 12 月 26 日 我猜是说,判断重复的数据后并灭有插入,但是 ID 却消耗掉了.可能和 on duplicate key update 的问题类似吧. |
4 xkeyideal 2018 年 12 月 26 日 难道爬虫都不过滤重复数据了么,布隆过滤器了解一下 |
6 gouchaoer2 2018 年 12 月 26 日 用框架就意味着你失去灵活性,就这么简单的任务都无法搞定,所以少用框架 |
7 lihongjie0209 2018 年 12 月 26 日 @mon3 你数据能设置唯一索引, 你代码过滤不了? 数据库不是代码?? |
8 loveCoding 2018 年 12 月 26 日 这是业务问题,跟框架没什么关系 |
9 Mac 2018 年 12 月 26 日 你该去好好看看 INSERT 语句 ON DUPLICATE 时的用法了。 |
10 EvilCult 2018 年 12 月 26 日 同意 3 楼.... 是不是写入的时候用的是“ replace into ” 而不是 “ on duplicate key update ” |
11 xpresslink 2018 年 12 月 26 日 以前用过 scrapy+django+djangoitem 爬到内容直接用 django ORM 入库,每条信息都会有一个唯一索引用识别, 再爬的时候 Foo.objects.get_or_create(defaults__exact='bar', defaults={'defaults': 'baz'}) |
14 xpresslink 2018 年 12 月 26 日 @xpresslink #11,写错了应该是用 .objects.update_or_create,没有就新建,有就更新。 |
16 mon3 OP @xpresslink 表的数据有的不能更新的,所以这个办法不太适合我。。 |
17 xpresslink 2018 年 12 月 26 日 |
18 mon3 OP @xpresslink 有重复数据的话直接丢弃,这步 mysql 自动执行了,但是 ID 也会增长,我需要的是 ID 不增长,数据直接丢。 |
21 realpg PRO innodb 不重复都会出现跳 ID 事务机制导致的 |
22 xpresslink 2018 年 12 月 26 日 @mon3 alter table tablename drop column id; alter table tablename add id mediumint(8) not null primary key auto_increment first; |
23 xpresslink 2018 年 12 月 26 日 我觉得没有必要执念于此。 |
25 gaius 2018 年 12 月 26 日 是自增主键跳了吗,正常,多线程插入就会跳。 |
26 hikarugo 2018 年 12 月 26 日 @gouchaoer2 ??? |
27 gouchaoer2 2018 年 12 月 26 日 @fyxtc ???!!! |
28 tingfang 2018 年 12 月 26 日 on duplicate key update 重复是会跳号的。 |
29 EvilCult 2018 年 12 月 26 日 |
30 rocketman13 2018 年 12 月 26 日 看 mysql 日志就可以了,应该是先写入,再删除 |
31 chinvo 2018 年 12 月 26 日 自己实现 UPDATE OR INSERT 啦 如果你用 orm,一般 orm 会提供的 没提供的话也就是查询两次的事,一次查 ID 是否存在,一次插入 /更新数据 |
34 ooh 2018 年 12 月 26 日 lz 是发现主键 ID 不连续吧,MySQL InnoDB 插入数据是先自增主键 ID,然后再写入数据,因为你有唯一键,所以重复的时候插入失败,但是主键 ID 已经自增了,如果你没办法保证插入不重复的数据,那么把 InnoDB 换成 MyISAM 即可 |
37 EvilCult 2018 年 12 月 26 日 via iPhone @aborigine 等下,看了 34 楼,我发现我好像看错题了…………………… 你们说的是 on duplicate update 后再查数据自增 ID 不连续吧…………[手动捂脸] |
38 chengxiao 2018 年 12 月 26 日 加一层 redis set 去重啊 入库前先判断 set 里有没有 有了 pass 没有了 set+1 入库 另外你不要爬一条插一条啊 肯定是到最后一起提交的 |
39 Nick2VIPUser 2018 年 12 月 26 日 很早遇到这个问题,不过我觉得这不算问题,id 只是一个唯一标识而已,跳号其实没有影响; 如果可以的话,在数据爬完之后另外找一个库重新写入一遍也是可以的。 |
40 pan404 2018 年 12 月 27 日 你是想说数据重复了没清洗掉吧 |
41 qaz564172564 2019 年 1 月 14 日 去重啊,偷懒的话 url 设为主键不久 ok 了 |