'Lo,
Ik heb in mijn mysql database 2 tabellen staan. Eentje met nieuwtjes (668 records) en eentje met reacties op de nieuwtjes. Nu wil ik op de beginpagina een headline overzicht met daarnaast het aantal reacties:
Het probleem is dat dit ontzettend traag is (2 seconde op me eigen bak, en 20 op de server (wat ik helemaal vaag vind)).
Wanneer ik de left join voor een inner join vervang gaat het ontzettend snel, maar dan mis ik dus de nieuwtjes met reacties.
Hoe komt dit? Is MySQL gewoon sloom met left joins (wat op zich natuurlijk al een trage optie is), heeft het te maken met een combinatie van de verschillende functies? En vooral: hoe los ik het op?
Ik heb in mijn mysql database 2 tabellen staan. Eentje met nieuwtjes (668 records) en eentje met reacties op de nieuwtjes. Nu wil ik op de beginpagina een headline overzicht met daarnaast het aantal reacties:
code:
1
2
3
4
5
6
| SELECT nieuws.id, nieuws.headline, DATE_FORMAT(nieuws.datum, '%d-%m-%Y') AS datum, DATE_FORMAT(nieuws.datum, '%H:%i:%s') AS tijd, count(reacties.id) AS aantalReacties FROM nieuws LEFT JOIN reacties ON reacties.itemid=nieuws.id GROUP BY nieuws.id ORDER BY nieuws.datum DESC LIMIT 0,100; |
Het probleem is dat dit ontzettend traag is (2 seconde op me eigen bak, en 20 op de server (wat ik helemaal vaag vind)).
Wanneer ik de left join voor een inner join vervang gaat het ontzettend snel, maar dan mis ik dus de nieuwtjes met reacties.
Hoe komt dit? Is MySQL gewoon sloom met left joins (wat op zich natuurlijk al een trage optie is), heeft het te maken met een combinatie van de verschillende functies? En vooral: hoe los ik het op?