对于我的学士论文,我必须分析密码泄漏,我有一个包含2个列的表 MEMBER_EMAIL 和 MEMBER_HASH
我想有效地计算每个哈希的频率
这样输出如下:
Hash | Amount ---------------- 2e3f.. | 345 2f2e.. | 288 b2be.. | 189
我的查询直到现在才是直截了当的:
SELECT MEMBER_HASH AS hashed, count(*) AS amount
FROM thesis.fulllist
GROUP BY hashed
ORDER BY amount DESC
虽然它适用于较小的表,但我在整个列表上计算查询时遇到问题(112 mio。条目),这需要我超过2天,结果是一个奇怪的连接超时错误,即使我的设置是关于细
所以我想知道是否有更好的计算方法(因为我无法想到任何方法),我们将不胜感激!
答案 0 :(得分:1)
您的查询无法进行优化,因为它非常简单。我认为改进查询执行方式的唯一方法是索引" MEMBER_HASH"。
这是你可以做到的:
ALTER TABLE `table` ADD INDEX `hashed` (`MEMBER_HASH`);