我正在尝试在 PHP 脚本的技能表中获取个人技能的分数总和。
该表是 InnoDB,有大约 2m 条记录并且结构化:skills (id,cand_id,skillname,score)。
我的查询示例是:
select SUM(score) as skillscore FROM skills WHERE cand_id = "6509" AND skillname in ("Cascading Style Sheets","jQuery","Personal Home Page","MySQL","JavaScript","HTML","Android","industry~it")
查询大约需要 0.0006 秒,但是有 50,000 人要循环,所以需要一段时间!
我怎样才能将其速度提高 10 倍?
谢谢。
最佳答案
您正在对每个 cand_id 进行查询,在循环中触发查询是您的瓶颈。
正如两个人已经告诉您的那样,在查询末尾使用 GROUP BY cand_id 语句,您将获得性能和不需要的代码。
关于php - 我如何加快此 mysql 查询的速度以在大型 mysql 表(200 万行)中求和一个分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6989680/