Ik ben op stage bezig met een portal pagina te maken.
Omdat deze echter nog totaal niet af is, maken we nog gebruik van het "oude" systeem dat een aantal stagiaires geleden gemaakt is.
Site in kwestie:
www.uitwijzer.nu
Dit systeem is echter heel traag met het opbouwen van een bepaald overzicht, wat we nodig hebben voor het weergeven van evenementen. We dachten eerst dat dit kwam doordat dit overzicht helemaal met javascript gewrite wordt, hebben dit er ook uitgehaald wat ook een stukje traagheid weghaalt.
We hebben ook een query die erin zat proberen te herschrijven, waarna we erachter kwamen dat de oude query dikke overkill was en het hele systeem traag maakt.
De oude query voert eerst een query uit, neemt hier het resultaat van, en gebruikt dit in een volgende query. Hij doet voor elk record nu een query! Wat dus dikke overkill is.
Oude querie:
Nieuwe query:
In principe werkt dit, het is alleen zo dat als ik een evenement invoer, hij voor evenementen die over meerdere dagen verspreid zijn een apart record toevoegt aan de database.
Een evenement heeft de volgende structuur:
id ts bdatum edatum titel gemeente categorie beschrijving style userid
id=unieke ID
ts=timestamp waarop record is toegevoegd/gewijzigd. Voor een evenement dat over meerdere dagen gaat is dit steeds hetzelfde
bdatum=datum van die bepaalde dag )bij een evenement dat van 12-12 tot 20-12 loopt is dat bij het eerste record 12-12, tweede record 13-12 etc.)
edatum=datum van einde van evenement, bij meerdaags evenement is deze overal hetzelfde. (zie vb hierboven, edatum is dan altijd 20-12)
titel, categorie, beschrijving, style en userid spreken vor zich
Als ik de eerste query gebruik bij het volgende evenement:
2889 20270505072355 2005-06-09 2005-06-12 Turtles Can Fly Heerlen Cultuur, Muziek & Musea Aangrijpende film over Koerdische kinderen die ter... 0 16
2889 20270505072355 2005-06-10 2005-06-12 Turtles Can Fly Heerlen Cultuur, Muziek & Musea Aangrijpende film over Koerdische kinderen die ter... 0 16
2889 20270505072355 2005-06-11 2005-06-12 Turtles Can Fly Heerlen Cultuur, Muziek & Musea Aangrijpende film over Koerdische kinderen die ter... 0 16
2889 20270505072355 2005-06-12 2005-06-12 Turtles Can Fly Heerlen Cultuur, Muziek & Musea Aangrijpende film over Koerdische kinderen die ter... 0 16
krijg ik als resultaat:
Do 9 Jun Zo 12 Jun Turtles Can Fly Heerlen
Bij de tweede query krijg ik echter:
Do 12 Jun Zo 12 Jun Turtles Can Fly Heerlen
De begindatum klopt dus niet.
We zitten hier met 2 stagiaires al 2 dagen op te kijken en hebben al iemand anders gevraagd, maar op een of andere manier komen we er niet uit.
Omdat deze echter nog totaal niet af is, maken we nog gebruik van het "oude" systeem dat een aantal stagiaires geleden gemaakt is.
Site in kwestie:
www.uitwijzer.nu
Dit systeem is echter heel traag met het opbouwen van een bepaald overzicht, wat we nodig hebben voor het weergeven van evenementen. We dachten eerst dat dit kwam doordat dit overzicht helemaal met javascript gewrite wordt, hebben dit er ook uitgehaald wat ook een stukje traagheid weghaalt.
We hebben ook een query die erin zat proberen te herschrijven, waarna we erachter kwamen dat de oude query dikke overkill was en het hele systeem traag maakt.
De oude query voert eerst een query uit, neemt hier het resultaat van, en gebruikt dit in een volgende query. Hij doet voor elk record nu een query! Wat dus dikke overkill is.
Oude querie:
code:
1
2
3
4
5
6
7
| $query1 = "SELECT DISTINCT ts FROM evenement ORDER BY bdatum, edatum"; while ($data1 = mysql_fetch_array($result1)) { $query2 = "SELECT * FROM evenement WHERE ts='".$data1['ts']."' ORDER BY bdatum, edatum, id LIMIT 1"; $result2 = mysql_query($query2); $data2 = mysql_fetch_array($result2); zet zooi in een array dat hij later dmv js write; } |
Nieuwe query:
code:
1
2
3
4
5
| $query = "SELECT DISTINCT ts,id,gemeente,titel,bdatum,edatum FROM evenement GROUP BY ts ORDER BY ts,bdatum, edatum"; $result = mysql_query($query); while( $data = mysql_fetch_assoc( $result ) ){ print zooi op een verantwoorde manier; } |
In principe werkt dit, het is alleen zo dat als ik een evenement invoer, hij voor evenementen die over meerdere dagen verspreid zijn een apart record toevoegt aan de database.
Een evenement heeft de volgende structuur:
id ts bdatum edatum titel gemeente categorie beschrijving style userid
id=unieke ID
ts=timestamp waarop record is toegevoegd/gewijzigd. Voor een evenement dat over meerdere dagen gaat is dit steeds hetzelfde
bdatum=datum van die bepaalde dag )bij een evenement dat van 12-12 tot 20-12 loopt is dat bij het eerste record 12-12, tweede record 13-12 etc.)
edatum=datum van einde van evenement, bij meerdaags evenement is deze overal hetzelfde. (zie vb hierboven, edatum is dan altijd 20-12)
titel, categorie, beschrijving, style en userid spreken vor zich
Als ik de eerste query gebruik bij het volgende evenement:
2889 20270505072355 2005-06-09 2005-06-12 Turtles Can Fly Heerlen Cultuur, Muziek & Musea Aangrijpende film over Koerdische kinderen die ter... 0 16
2889 20270505072355 2005-06-10 2005-06-12 Turtles Can Fly Heerlen Cultuur, Muziek & Musea Aangrijpende film over Koerdische kinderen die ter... 0 16
2889 20270505072355 2005-06-11 2005-06-12 Turtles Can Fly Heerlen Cultuur, Muziek & Musea Aangrijpende film over Koerdische kinderen die ter... 0 16
2889 20270505072355 2005-06-12 2005-06-12 Turtles Can Fly Heerlen Cultuur, Muziek & Musea Aangrijpende film over Koerdische kinderen die ter... 0 16
krijg ik als resultaat:
Do 9 Jun Zo 12 Jun Turtles Can Fly Heerlen
Bij de tweede query krijg ik echter:
Do 12 Jun Zo 12 Jun Turtles Can Fly Heerlen
De begindatum klopt dus niet.
We zitten hier met 2 stagiaires al 2 dagen op te kijken en hebben al iemand anders gevraagd, maar op een of andere manier komen we er niet uit.