SELECT u.id, u.honour, COUNT(*) + 1 AS rank
FROM user_info u
INNER JOIN user_info u2
ON u.honour < u2.honour
WHERE u.id = '$id'
AND u2.status = 'Alive'
AND u2.rank != '14'
此查询当前完全放慢了我的服务器速度。它根据你的荣誉得出你在“user_info”表中的等级,它将它存储在我们所有的用户之外。优化并改善此MYSQL查询的性能
解释的截图。
http://cl.ly/370z0v2Y3v2X1t1r1k2A
SELECT u.id, u.honour, COUNT(*)+1 as rank
FROM user_info u
USE INDEX (prestigeOptimiser)
INNER JOIN user_info u2
ON u.honour < u2.honour
WHERE u.id='3'
AND u2.status='Alive'
AND u2.rank!='14'
您可能需要添加一些索引 – 2012-04-13 17:00:19
您是否注意到您没有任何分组? – 2012-04-13 17:00:53
你可以包括从您的选择扩展解释 – ManseUK 2012-04-13 17:00:59