SQL 查询需要 60 秒才能完成
SQL query take 60 seconds to complete
我有这个查询 table 有 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)的统计数据。它运行了好几年,但现在 table 中有 14K 行,它需要很长时间才能完成。感谢提示!
这是您的查询:
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)
上的索引。这应该会更好。
我有这个查询 table 有 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)的统计数据。它运行了好几年,但现在 table 中有 14K 行,它需要很长时间才能完成。感谢提示!
这是您的查询:
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)
上的索引。这应该会更好。