php - 在 PHP 中保存最后一个 SQL 查询状态

标签 php mysql session symfony-1.4 session-state

对于双人游戏,我需要每 30 秒向玩家发送一次更新的数据。

我有一个表(最好是 4 个表),我需要从中选择数据并在他/她登录后发送给用户。由于是多人互动游戏,需要每30-60秒同步一次数据。

我的问题是,我有一个非常繁重的查询,每 30-60 秒要运行一次。所以理想情况下,我应该在同步期间只向播放器发送更新的行和新行(这也是 iPhone/Android 游戏的前端要求,应用程序不希望在每次同步操作期间都有完整的数据)。

我经历了MySQL: difference of two result sets并希望我只能通过 SQL 获取更新/新记录,但问题是,我如何保存上次查询的结果。

即使我将第一个结果保存在 Session 中(可能不推荐),只要插入或更新了新行,该记录也将无用。再次更新 session 记录肯定会给服务器带来很大的压力。

有人可以建议实现此要求的最佳方法吗?没有详细的解决方案,只需一些提示/链接就足够了。

最佳答案

基本上,这并不难。让我为您提供一个步骤计划。

  1. 向要对其执行此操作的每个表添加一个日期时间字段
  2. 在每个更新查询中,将此字段设置为 NOW()
  3. 确保应用程序将其上次更新的时间添加到其所有请求中
  4. 让服务器添加更新时间以将结果发送到应用程序(它也发送更新的行)

关于php - 在 PHP 中保存最后一个 SQL 查询状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13233151/

相关文章:

java - 无法序列化树脂请求的 session

javascript - 如何/在哪里可以在包含用户输入的所有响应中添加 “X-Content-Type-Options: nosniff”

php - 为什么在 Laravel AuthController 中重写 postRegister 不起作用?

Php:我怎样才能从字符串中删除任何字符或整个字符串,不包括引号之间的字符?

php - 实时更新 MySQL 数据

mysql - ActiveRecord 关联 : am I doing it right?

google-chrome - 表单例份验证 - 为每个请求执行的 loginUrl 页面(仅限 Chrome)

php - 如何将 SQL 连接传递给另一个 php

mysql - 确定什么是向 mysql 表中插入空白行?

node.js - 如何让 axios 维护 API 调用之间的 cookie/ session ?