sql >> Databasteknik >  >> RDS >> Mysql

MySQL-fråga tar över 6 sekunder

AFAIK, du pivoterar din data och jag tror att du använder max(case ...) ... group by har bra prestanda när det gäller att pivotera data.
Jag kan föreslå att du använder den här frågan istället:

select event_date
    , max(case when r.class = 40 then name end) `Class 40 Winner`
    , max(case when r.class = 30 then name end) `Class 30 Winner`
from events e
left join results r on e.event_id = r.result_event and r.position = 1
group by event_date;

[SQL Fiddle Demo]



  1. Hur man säkerhetskopierar och återställer en PostgreSQL-databas via DBeaver

  2. Databas/SQL:Hur lagrar man longitud/latituddata?

  3. Hur ställer jag programmatiskt in anslutningssträngen för Entity-Framework Code-First?

  4. Laravel 5 databasproblem