Я собираю данные матча из онлайн-игры, в которой каждое совпадение составляет 5 на 5, при этом каждый игрок выбирает уникального персонажа или героя в начале матча.Разработка базы данных и приложений для создания частых элементов
Моя конечная цель - использовать генерацию частых элементов, чтобы определить, какие комбинации героев являются самыми популярными и потенциально какие комбинации выигрывают чаще.
Я хотел бы иметь приложение, которое будет основано на Интернете, где пользователь вводит героев, выбранных противоположной командой, и героев, выбранных в данный момент вашей командой, и рекомендует выбирать героев. Этими героями будут те, которые чаще появляются в выигрышных играх против героев, выбранных противоположной командой.
Я знаю, что герои, которые собираются чаще, также будут чаще появляться в выигрышных играх, поэтому я могу использовать базу данных транзакций, которая содержит только героев из игрового режима, где герои выбираются случайным образом для каждого игрок.
У меня есть база данных MySQL, в которой есть таблица соответствия, таблица Hero и таблица MatchHero, которая содержит первичный ключ (MatchId, HeroId) и bool того, выиграл ли этот герой. В настоящее время эта таблица насчитывает около 26 миллионов записей. Проблема в том, что выборка данных может занять от 3 до 14 секунд в зависимости от количества записей (меньшее количество пользовательских выборов приводит к большему количеству записей).
Что было бы лучшим дизайном, чтобы позволить мне реализовать это, когда извлекать данные, и делать расчеты достаточно быстро для веб-приложения? Хранение таблицы в памяти? Я не слишком беспокоюсь о алгоритме генерации всего набора, поскольку у меня уже есть достойная производительность с априори. Может ли быть заранее рассчитано что-либо, связанное с генерацией частых элементов? Спасибо за вашу помощь!