84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
有个36.6G的csv文件,需要去重并导入到数据库(顺序无所谓,只需要结果是一个无重复的表),如何处理?
ringa_lee
如果 Foo 字段不能重复,那么定义 Unique 就好了,自动去掉了:
CREATE TABLE xxx ( ... Foo varchar unique not null, ... );
你可以全部导入数据库然后通过sql操作删除重复的数据
对可能重复的字段建一个唯一索引
插入的时候用insert ignore into ...
可以用bash, 先sort, 然后用awk检查相邻行是否一样,如果不一样就输出到一个新的文件。这样其实速度并不慢,但是可能需要很多空间。
比较好的做法是在导入时让数据库自己处理,比如前面所说的定义unique域。
如果 Foo 字段不能重复,那么定义 Unique 就好了,自动去掉了:
你可以全部导入数据库然后通过sql操作删除重复的数据
对可能重复的字段建一个唯一索引
插入的时候用insert ignore into ...
可以用bash, 先sort, 然后用awk检查相邻行是否一样,如果不一样就输出到一个新的文件。这样其实速度并不慢,但是可能需要很多空间。
比较好的做法是在导入时让数据库自己处理,比如前面所说的定义unique域。