对于双人游戏,我需要每30秒向玩家发送一次更新数据。
我有一张桌子(理想情况下是4张桌子),我需要选择数据并在用户登录后发送给用户。由于它是多人交互游戏,因此数据需要每30-60秒同步一次。
我的问题是,我每30-60秒运行一次非常繁重的查询。理想情况下,我应该在同步期间仅向播放器发送更新和新行(它也是iPhone / Android游戏的前端要求,应用程序在每次同步操作期间都不需要整个数据)。
我经历了MySQL: difference of two result sets并希望我只通过SQL获得更新/新记录,但问题是,如何保存上次查询的结果。
即使我在会话中保存了第一个结果(可能不推荐),只要插入或更新新行,该记录就会无用。再次更新会话记录肯定会给服务器带来很大的压力。
有人可以建议达到这个要求的最佳方法;没有详细的解决方案,只需要一些提示/链接即可。
答案 0 :(得分:2)
难道你不能只是为所有东西打上时间戳吗?
为表中的每一行指定一个名为“last_updated”的时间戳
在查询中,使用last_updated过滤掉所有条目,该last_updated在上次执行查询之前(或者可能是客户端上次调用服务器时获得的最新last_updated)
答案 1 :(得分:2)
基本上,这并不难。让我为您提供一个步骤计划。
NOW()