对于双人游戏,我需要每 30 秒向玩家发送一次更新的数据。
我有一个表(最好是 4 个表),我需要从中选择数据并在他/她登录后发送给用户。由于是多人互动游戏,需要每30-60秒同步一次数据。
我的问题是,我有一个非常繁重的查询,每 30-60 秒要运行一次。所以理想情况下,我应该在同步期间只向播放器发送更新的行和新行(这也是 iPhone/Android 游戏的前端要求,应用程序不希望在每次同步操作期间都有完整的数据)。
我经历了MySQL: difference of two result sets并希望我只能通过 SQL 获取更新/新记录,但问题是,我如何保存上次查询的结果。
即使我将第一个结果保存在 Session 中(可能不推荐),只要插入或更新了新行,该记录也将无用。再次更新 session 记录肯定会给服务器带来很大的压力。
有人可以建议实现此要求的最佳方法吗?没有详细的解决方案,只需一些提示/链接就足够了。
最佳答案
基本上,这并不难。让我为您提供一个步骤计划。
- 向要对其执行此操作的每个表添加一个日期时间字段
- 在每个更新查询中,将此字段设置为
NOW()
- 确保应用程序将其上次更新的时间添加到其所有请求中
- 让服务器添加更新时间以将结果发送到应用程序(它也发送更新的行)
关于php - 在 PHP 中保存最后一个 SQL 查询状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13233151/