0

我对一个有 14000 行的表有这个查询......花了很长时间才能完成输出。这是代码:

$query="SELECT j6.Name, j.id,
        SUM(j6.pts) + IFNULL(j.pts, 0) AS total
        FROM joueurs2006 j6 LEFT OUTER JOIN joueurs j 
        ON (j.Name = j6.Name) 
        WHERE j6.pts != 0 GROUP BY j6.Name 
        ORDER BY total DESC
        LIMIT 0,15";

我想做的是编译过去季节的统计数据(全部存储在 joueurs2006 中)并添加当前季节的统计数据(joueurs)。它运行了好几年,但现在表中有 14K 行,需要很长时间才能完成。感谢您的提示!

4

1 回答 1

0

这是您的查询:

SELECT j6.Name, j.id, SUM(j6.pts) + IFNULL(j.pts, 0) AS total
FROM joueurs2006 j6 LEFT OUTER JOIN
     joueurs j
     ON j.Name = j6.Name
WHERE j6.pts <> 0
GROUP BY j6.Name
ORDER BY total DESC
LIMIT 0, 15;

对于此查询,您需要 和 上的joueurs2006(name, pts)索引joueurs(name, pts)。那应该会更好。

于 2016-10-14T21:03:33.197 回答