gpt4 book ai didi

mysql - 频繁项集生成的数据库和应用程序设计

转载 作者:行者123 更新时间:2023-11-30 23:14:56 25 4
gpt4 key购买 nike

我正在从一个在线游戏中挖掘比赛数据,每场比赛都是 5 对 5,每个玩家在比赛开始时选择一个独特的角色或英雄。

我的最终目标是使用频繁的项目集生成来确定哪些英雄组合最受欢迎,以及哪些组合可能更频繁地获胜。

我想要一个基于 Web 的应用程序,用户可以在其中输入对方团队选择的英雄,以及您团队当前选择的英雄,并推荐英雄选择。这些英雄会在与对方队伍选择的英雄的比赛中更频繁地出现。

我知道选择更频繁的英雄最终也会更频繁地出现在获胜的游戏中,这就是为什么我可能会使用仅包含游戏模式中的英雄的交易数据库,其中为每个玩家随机选择英雄.

我有一个 MySQL 数据库,它有一个 Match 表、一个 Hero 表和一个 MatchHero 表,其中包含一个主键 (MatchId,HeroId) 和一个表示该英雄是否获胜的 bool 值。该表目前有大约 2600 万个条目。问题是获取数据可能需要 3 到 14 秒,具体取决于记录的数量(用户选择越少,获取的记录越多)。

什么是最好的设计来让我在获取数据和计算速度足够快的情况下实现这个网络应用程序?将表存储在内存中?我不太担心实际的项目集生成算法,因为我已经使用 apriori 获得了不错的性能。是否可以预先计算与频繁项集生成相关的任何内容?感谢您的帮助!

最佳答案

使用索引来加快数据访问。尽可能多地在数据库中进行数据分析,以避免将其复制到您的应用程序中。减少查询次数,改用存储过程和准备好的语句。

确保您真的理解了 Apriori。

如果您使用 SQL 查询计算每个项集的支持度,那您就错了。对每个项目集 长度 使用 1 遍数据库;即所有 1 项集通过 1 次,所有 2 项集通过 1 次,所有 3 项集通过 1 次。

Apriori 的基本思想并不难,但很多人没有了解所有的细节,然后它变得比必要的慢得多。

关于mysql - 频繁项集生成的数据库和应用程序设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18371511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com