在 MySQL 中有效地计算密码哈希的频率

Calculating frequency of password hashes efficiently in MySQL

对于我的学士论文,我必须分析密码泄漏,我有一个 table 和 2 个列 MEMBER_EMAILMEMBER_HASH

我想计算每个散列的频率高效

所以输出看起来像:

散列 |数量
------------------
2e3f.. | 345
2f2e.. | 288
b2be.. | 189

到目前为止,我的查询很简单:

SELECT MEMBER_HASH AS hashed, count(*) AS amount 
FROM thesis.fulllist 
GROUP BY hashed 
ORDER BY amount DESC

虽然它适用于较小的 tables,但我在计算整个列表(112 mio.entries)上的查询时遇到问题,我花了 2 天多的时间,以奇怪的连接超时错误结束即使我的相关设置没问题。

所以我想知道是否有更好的计算方法(因为我真的想不出任何方法),将不胜感激任何帮助!

您的查询非常简单,无法优化。我认为改进查询执行方式的唯一方法是索引 "MEMBER_HASH".

您可以这样做:

ALTER TABLE `table` ADD INDEX `hashed` (`MEMBER_HASH`);