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。