1.3M查询/小时.你会如何构建查询?

Bla*_*use 7 php mysql iphone phpmyadmin

我有一个在线iphone转基础游戏,同时运行许多游戏.我正在优化代码,因为我和服务器今天都崩溃了.

这是设置:

现在我有一个表,"匹配"(每行70个数据字段.结构),跟踪所有活动的匹配.每隔7秒,iphone将连接,下载他/她活动的"匹配"表中的所有匹配项,并更新iphone中的UI.

这很有效,直到大约1000人下载游戏并玩.服务器崩溃了.

所以为了优化,我想我可以创建一个名为"matches_needs_update"的新表.这个表有2行; 名称和ID."id"与"匹配"表中的匹配相同.更新匹配后,将其放入此表中.

现在,不是搜索整个"匹配"表,查询只是检查玩家是否有任何需要更新的匹配,然后从"匹配"表中获取这些匹配.

我的问题是双重的:

  1. 这是最佳解决方案吗?
  2. 如果一个玩家处于活动状态,例如10个匹配,是否有一个很好的方法可以同时从"匹配"表中获得这10个匹配,或者我需要一个for循环执行10个查询,每个匹配一个:

    "SELECT*FROM匹配WHERE id =?"

提前致谢

cra*_*gmj 7

你需要离开数据库.查看memcache或redis.


Hap*_*her 6

我建议APC ......

...当你使用PHP时,我假设你是从一个mysql数据库中做到的,

它易于安装,默认从PHP 6开始.

保持这1个表在内存中它会飞.