【问题标题】:Calculating frequency of password hashes efficiently in MySQL在 MySQL 中有效地计算密码哈希的频率
【发布时间】:2017-12-11 14:18:08
【问题描述】:

对于我的学士论文,我必须分析密码泄漏,我有一个包含 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

虽然它适用于较小的表,但我在计算整个列表(112 个 mio。条目)上的查询时遇到了问题,我需要 2 天以上的时间,即使我的设置是这样的,也会以奇怪的连接超时错误结束很好。

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

【问题讨论】:

  • GROUP BY可以使用索引,hashed是否被索引了?
  • 感谢您的建议,只有列和 MEMBER_EMAIL 的组合被编入索引,哎呀!一定要试一试,谢谢!

标签: mysql hash group-by count frequency


【解决方案1】:

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

你可以这样做:

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

【讨论】:

  • 这么想!我试一试(因为不知何故我还没有将它编入索引),会报告!到目前为止,谢谢。
  • 看起来效果很好!现在我只需要 30 分钟而不是 2 天,非常感谢!
猜你喜欢
  • 2020-03-20
  • 2022-07-06
  • 2017-09-14
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
  • 2017-02-20
  • 2017-03-01
  • 2017-02-04
相关资源
最近更新 更多