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) FROM password WHERE length = 4 GROUP BY ciphertext
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。