84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
我有一张接近八千万条数据的彩虹表,然后里面有二十多万条的重复数据,我想使用GROUP BY进行分组,但是使用了GROUP BY语句以后,mysql会生出一张零时表,而零时表,把我的硬盘全部沾满了,所以,求个办法,能帮去去处这重复的数据?
GROUP BY
我的sql:
sql:
SELECT COUNT(id) FROMpasswordWHERElength= 4 GROUP BYciphertext
id
password
length
ciphertext
ringa_lee
不赞成用一条SQL语句来搞定这类问题,因为数据库耗不起。可以用程序来实现(比如写个Python脚本),步骤是这样的:
把表A(8千万行)复制一个表结构,产生一张空表B;
对B的ciphertext列做唯一索引;
遍历表A的每一行,插入到表B,可以用REPLACE或INSERT INTO ... ON DUPLICATE KEY UPDATE ...
REPLACE
INSERT INTO ... ON DUPLICATE KEY UPDATE ...
校验表B的数据,如果结果正确,则删除表A,把表B重命名为表A。
不赞成用一条SQL语句来搞定这类问题,因为数据库耗不起。可以用程序来实现(比如写个Python脚本),步骤是这样的:
把表A(8千万行)复制一个表结构,产生一张空表B;
对B的ciphertext列做唯一索引;
遍历表A的每一行,插入到表B,可以用
REPLACE
或INSERT INTO ... ON DUPLICATE KEY UPDATE ...
校验表B的数据,如果结果正确,则删除表A,把表B重命名为表A。