Ik ben op dit moment bezig met een projectje en daarbij zit ik nu op een punt dat ik even niet weet wat ik het beste kan doen. Eerst even de tabel (simpel weergegeven):
- artikel
- tijd
- lokatie
Wat is nu de bedoeling? Kijken welke artikelen het zelfde traject afleggen. Het zelfde traject afleggen betekend: 2 artikelen moeten elk minimaal 2 keer achter elkaar op dezelfde tijd op dezelfde locatie zijn. Dat betekent namelijk dat er maar 1 mogelijkheid is, dat ze hetzelfde traject tussen die lokaties hebben.
Het probleem is dat de aantallen records waarschijnlijk niet bepaald klein blijven, vandaar dat ik een zo efficient mogelijke oplossing zoek. De eerste oplossing was een query waarin de tabel onder 4 verschillende namen gebruikt werd om de 2 reizen met elk 2 reispunten te matchen. Echter dat was zowiezo onbruikbaar qua performance. (En is het niet zo dat er dan in het geheugen 4 kopieeen gemaakt worden van de tabel? dat wordt dan ook misschien wat veel van het goede)
Daarna heb ik het zo aangepast dat er alleen nog maar gekeken werd naar artikelen op dezelfde lokatie op dezelfde tijd. Om vervolgens met php in een lusje de artikelen eruit te pakken die 2 of meer keer achter elkaar voorkwamen (via order by) Dit is al een flinke verbetering op dit moment maar ik ben er toch niet helemaal tevreden over. Er worden ook nog steeds 2 kopieen van de tabel gebruikt, in hoeverre dat een probleem is weet ik niet.
Hoe kan ik de juiste gegevens efficienter uit de database krijgen, of welke aanpassingen aan de structuur kan ik het beste maken?
- artikel
- tijd
- lokatie
Wat is nu de bedoeling? Kijken welke artikelen het zelfde traject afleggen. Het zelfde traject afleggen betekend: 2 artikelen moeten elk minimaal 2 keer achter elkaar op dezelfde tijd op dezelfde locatie zijn. Dat betekent namelijk dat er maar 1 mogelijkheid is, dat ze hetzelfde traject tussen die lokaties hebben.
Het probleem is dat de aantallen records waarschijnlijk niet bepaald klein blijven, vandaar dat ik een zo efficient mogelijke oplossing zoek. De eerste oplossing was een query waarin de tabel onder 4 verschillende namen gebruikt werd om de 2 reizen met elk 2 reispunten te matchen. Echter dat was zowiezo onbruikbaar qua performance. (En is het niet zo dat er dan in het geheugen 4 kopieeen gemaakt worden van de tabel? dat wordt dan ook misschien wat veel van het goede)
Daarna heb ik het zo aangepast dat er alleen nog maar gekeken werd naar artikelen op dezelfde lokatie op dezelfde tijd. Om vervolgens met php in een lusje de artikelen eruit te pakken die 2 of meer keer achter elkaar voorkwamen (via order by) Dit is al een flinke verbetering op dit moment maar ik ben er toch niet helemaal tevreden over. Er worden ook nog steeds 2 kopieen van de tabel gebruikt, in hoeverre dat een probleem is weet ik niet.
Hoe kan ik de juiste gegevens efficienter uit de database krijgen, of welke aanpassingen aan de structuur kan ik het beste maken?
[ Voor 3% gewijzigd door Verwijderd op 03-06-2003 13:43 ]