ik ben bezig met een cms met oa. een invoerscherm waarop de hoofdkaart van een object (bijv. een bedrijf) te zien is, met allerlei omliggende gerelateerde informatie, zoals adressen, telefoonnummers, gerelateerde personen en bedrijven, gekoppelde artikelen, notities etc.
om een idee te geven: http://217.67.233.220/snd/test.jpg
nu zit ik eigenlijk vast in het optimaliseren van m'n queries.
methode 1: hoofdkaart-gegevens ophalen + alle gerelateerde gegevens via left joins. resultaat: een gigantische result met veel rijen, waarbij ik in php nog veel moet gaan nafilteren (dingen als if (!in_array($row['person_id'], $persons) print "person {$row['person_name']}")
methode 2: 9 losse simpele queries die per query 1 type gegeven (adressen. artikelen of gerelateerde personen) ophalen.
methode 3: iemand??
nb 1: ik werk met mysql 3.23 dus ik kan geen gebruikmaken van group_concat. echter al zou ik naar 4.1 upgraden dan nog moet ik nog heel veel gaan nabewerken in php mbv explode enzo...
nb2: over methode 1, kost het nou evenredig meer performance / resources om een result te krijgen die bijv. 2x zoveel rows bevat? maw. door gebruik van left joins krijg je alle mogelijke combinaties terug, waardoor het bij veel joins een erg grote result kan worden...
nb3: bij methode 1 lijkt het me erg belangrijk om de tables zo te optimaliseren dat goed gebruikgemaakt wordt van indexen. stel nu dat je even het indexeren aan de kant zou zetten, kan ik dan aannemen dat een enkele zeer complexe query met veel joins en veel velden evenveel 'kost' als een reeks kleine simpele queries?
dank!
om een idee te geven: http://217.67.233.220/snd/test.jpg
nu zit ik eigenlijk vast in het optimaliseren van m'n queries.
methode 1: hoofdkaart-gegevens ophalen + alle gerelateerde gegevens via left joins. resultaat: een gigantische result met veel rijen, waarbij ik in php nog veel moet gaan nafilteren (dingen als if (!in_array($row['person_id'], $persons) print "person {$row['person_name']}")
methode 2: 9 losse simpele queries die per query 1 type gegeven (adressen. artikelen of gerelateerde personen) ophalen.
methode 3: iemand??
nb 1: ik werk met mysql 3.23 dus ik kan geen gebruikmaken van group_concat. echter al zou ik naar 4.1 upgraden dan nog moet ik nog heel veel gaan nabewerken in php mbv explode enzo...
nb2: over methode 1, kost het nou evenredig meer performance / resources om een result te krijgen die bijv. 2x zoveel rows bevat? maw. door gebruik van left joins krijg je alle mogelijke combinaties terug, waardoor het bij veel joins een erg grote result kan worden...
nb3: bij methode 1 lijkt het me erg belangrijk om de tables zo te optimaliseren dat goed gebruikgemaakt wordt van indexen. stel nu dat je even het indexeren aan de kant zou zetten, kan ik dan aannemen dat een enkele zeer complexe query met veel joins en veel velden evenveel 'kost' als een reeks kleine simpele queries?
dank!
[ Voor 4% gewijzigd door js303 op 02-11-2004 13:21 ]