Для моего бакалавриата я должен проанализировать утечку паролей, и у меня есть таблица с 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 млн. Записей), где мне требуется более 2 дней, что заканчивается ошибкой таймаута соединения, даже если мои настройки в этом отношении прекрасны.
Поэтому я задаюсь вопросом, есть ли лучший способ рассчитать (как я не могу думать об этом), был бы признателен за любую помощь!
Ваш запрос не может быть оптимизирован, так как он довольно прост. Единственный способ улучшить способ выполнения запроса - проиндексировать "MEMBER_HASH".
Так вы можете это сделать:
ALTER TABLE 'table' ADD INDEX 'hashed' ('MEMBER_HASH');