sql >> Databáze >  >> RDS >> Mysql

Optimalizujte dotaz s pomalým hodnocením

Zkuste toto:

SELECT  t.*, cnt
FROM    (
        SELECT  team_id, COUNT(*) AS cnt
        FROM    (
                SELECT  player_id, MAX(id) AS mid
                FROM    player_team
                GROUP BY
                        player_id
                ) q
        JOIN    player_team pt
        ON      pt.id = q.mid
        GROUP BY
                team_id
        ) q2
JOIN    team t
ON      t.id = q2.team_id
ORDER BY
        cnt DESC
LIMIT 50

Vytvořte index na player_team (player_id, id) (v tomto pořadí), aby to fungovalo rychle.



  1. Problém s velikostí nahrávání v PHP a MySql

  2. Cizí klíč PostgreSQL neexistuje, problém dědičnosti?

  3. jak používat data JSON v chart.js?

  4. Google Cloud SQL – ERROR 2003 (HY000):Nelze se připojit k MySQL