Mysql
 sql >> база данни >  >> RDS >> Mysql

Оптимизирайте заявката за бавно класиране

Опитайте това:

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

Създайте индекс на player_team (player_id, id) (в този ред), за да работи бързо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да обърнете реда на символите в низ в MySQL

  2. MySQL INNER JOIN избира само един ред от втората таблица

  3. myisam да постави заключване на таблицата на масата дори когато работи със заявка за 'select'?

  4. Какво е еквивалентът на bind_result в PDO

  5. Mysql изберете за актуализиране - не заключва целевите редове. Как да се уверя, че е така?