php – 真的很大的SELECT查询

我想询问是否有更快的方法来进行此查询?实际上完成需要大约100秒.我在表中有大约10 000 000(1 GB)行.这是统计信息生成脚本.

这是查询

  $results=MysqL_query("SELECT * FROM hawkeye WHERE player_id='".$playerID."'") or die("MysqL ERROR: ".MysqL_error());

然后是PHP代码

  $row = MysqL_fetch_array($results)
  if($row["action"] == 4){$commandcount++;}
  else if($row["action"] == 3){$chatcount++;}
  else if($row["action"] == 1){$placedcount++;}
  else if($row["action"] == 0){$breakcount++;}
  else if($row["action"] == 5){$joincount++;}
  else if($row["action"] == 6){$quitcount++;}
  else if($row["action"] == 7){$qteleportcount++;}
  else if($row["action"] == 12){$pvpdeathcount++;}
  else if($row["action"] == 21){$mobkillcount++;}
  else if($row["action"] == 22){$otherdeathcount++;}
  else {}

谢谢你的回答!

解决方法:

使用MysqL为您做数学运算.它比PHP更快:

SELECT COUNT(*) AS action_count
     , action
FROM hawkeye 
WHERE player_id='".$playerID."'"
GROUP BY action

while ($row = MysqL_fetch_assoc($result))
{
    echo $row['action'] . ': ' . $row['action_count'] . "<br>" . PHP_EOL;
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...