gpt4 book ai didi

java - MySQL数据库查询率高的Java程序如何优化

转载 作者:行者123 更新时间:2023-11-29 00:37:28 24 4
gpt4 key购买 nike

我目前正在开发一款用于教育目的的游戏。

游戏是一个小聊天,每个玩家都有一个数字。这个人物的位置写在 MySQL 数据库中,每次玩家移动他的人物时都会更新。

目前,游戏每 60 帧更新一次所有玩家的位置,并在游戏客户端中更改它们。数据库的性能不是我唯一关心的问题,因为这会导致游戏帧率下降到 30-50 fps 左右。

显然,这会为每个玩家每秒生成 1 个位置更新查询(游戏以 60fps 运行)。考虑比我和一些 friend 大一点的用户,我可以想象这可能是个问题。

标准租用的网络服务器是否能够处理这个问题?我该如何改进它? (它不能少于每秒一次更新位置)

我希望你有一些想法:-)

最佳答案

这种数据在每次更改后并没有真正保存到数据库中,而是保存在某种内存上下文中,以便更快地访问。您在数据库中存储的是更改频率较低的内容,例如每分钟一次。

您可能要做的是定期将当前内存中的上下文快照到数据库中。也就是说,每隔一分钟左右,您都会“保留”游戏状态,以便在引擎崩溃时可以从该点恢复。如果您创建适当的体系结构,这将不会比定期调用方法更困难。

某些事情可能会立即持久化,以避免人们利用在 Action 发生和该 Action 的记录成为永久记录之间的这种延迟。例如,任何使用游戏内货币的交易都将被立即记录下来,并且内存中的缓存不会因这些交易而受到信任。

对于少量玩家,例如不到一百人,使用商用 VPS 应该没有问题。要接待更多玩家,您必须非常小心以提高效率。

关于java - MySQL数据库查询率高的Java程序如何优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668661/

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