在 MySQL 中有效地计算密码哈希的频率
Calculating frequency of password hashes efficiently in MySQL
对于我的学士论文,我必须分析密码泄漏,我有一个 table 和 2 个列 MEMBER_EMAIL 和 MEMBER_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`);
对于我的学士论文,我必须分析密码泄漏,我有一个 table 和 2 个列 MEMBER_EMAIL 和 MEMBER_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`);