对于两个玩家游戏,我需要每30秒向玩家发送更新的数据。
我有一个表(理想的是4个表),从我/她登录后需要选择数据并发送给用户。由于它是多玩家交互游戏,因此需要每30-60秒同步数据。
我的问题是,我的查询非常沉重,每30-60秒运行一次。因此,理想情况下,我应该在同步期间仅向播放器发送更新和新行(这也是iPhone/Android游戏的前端要求,应用程序在每个同步操作期间都不需要整个数据)。
我经历了MySQL:两个结果集的差异,希望我只能通过SQL获得更新/新记录,但问题是,我如何保存上次查询的结果。
即使我在会话中保存第一个结果(可能不建议),一旦插入或更新了新的行,记录也将毫无用处。更新会话记录再次肯定会给服务器带来很大的压力。
有人可以建议达到这一要求的最佳方法;不是详细的解决方案,只有一些提示/链接就足够了。
基本上,这并不难。让我为您提供一个步骤计划。
- 在每个表上添加DateTime字段,您想在 上执行此操作
- 在您的每个更新查询中,将此字段设置为
NOW()
- 确保应用程序将其上次更新的时间添加到所有请求
- 让服务器添加更新的时间以将其发送到应用程序(也发送更新的行)
您不能只是时间戳吗?
给表表中的每一行时间戳称为" last_updated"
之类的东西在查询中,用last_updated过滤所有条目,该条目是在执行查询之前的最后一次(或最新的last_upd_updect_updest_updected,client the客户端上一次称为服务器)