Speed up highscore rank calculation
What about this query:

SELECT COUNT(*) + 1 as user_rank
    FROM olympia_punkte_alle p
    WHERE markt_id = 1
    GROUP BY fb_id
    HAVING 
        MAX(punkte) &gt; (SELECT MAX(punkte)
            FROM olympia_punkte_alle
            WHERE markt_id = 1
            GROUP BY fb_id
            HAVING fb_id = 2950)


We are getting the count of users that have better score then users with id 2950.
The count of better users + 1 is rank of your user.