Hallo,
Ich habe meine Datenbank schön normalisiert aber dadurch wird das ganze unter mysql4 sehr sehr langsam. Um das eine Query zu bekommen dauert es über 42 sekunden auf dem Server im Internet mit MySQL 4. Zu Hause auf meinem MacBook mit MySQL 5 dauert genau das gleiche nur etwa 0.22 Sekunden. ich kann zwar auf MySQL5 auf dem Server upgraden, weiß aber dann trotzdem nicht so wirklich ob das Query so optimal ist. Außerdem könnte man da einiges von den 3599 Ergebniszeilen weglassen, nur weiß ich nicht wie ich das machen soll. Erst mal schreibe ich mal auf wie die Datenbank aufgebaut ist:
teams: | id | name
team_to_division: | team_id | division_id
divisions: | id | name | sport_id
Bisher habe ich so die ganzen Namen abgefragt:
SELECT teams.id, teams.name
FROM teams
LEFT JOIN team_to_division
ON teams.id = team_to_division.team_id
LEFT JOIN divisions
ON team_to_division.division_id = divisions.id
WHERE divisions.sport_id = 1;
Wobei das zwar funktioniert aber ich nicht wirklich weiß ob das alles so sinnvoll mit dem LEFT JOIN ist, das kam eher durch ausprobieren raus als durch Wissen.
Es kommen dabei aber auch sehr viele Daten raus, bisher 3599, wobei die meisten gar nicht benötigt werden. Ich könnte nämlich noch davor herausfinden welche divisions überhaupt gebraucht werden. Das würde ich dann als Array aus division_id(s) bekommen, z.B. [23, 123, 42, 23, 63, 311, 312]
Das Problem ist jetzt, ich hab keinen blassen Schimmer, wie ich das alles Geschwindigkeitsmäßig so schnell wie möglich machen kann, denn genau diese Daten werden sehr oft abgefragt. Kann mir jemand ein paar Tipps geben?
Grüße
Jeena Paradies