hi,
heb een database draaien met daarin de verwijzingen naar een collectie foto's. gesorteerd op datum, zodat in een website met een knopje vorige/volgende doorgelinkt kan worden naar de opvolgende foto's in de zelfde reeks.
momenteel zoek ik deze volgende en vorige foto op middels twee queries;
en vise versa.
aangezien de collectie inmiddels behoorlijk groot geworden is, gaat deze query steeds langzamer; op dit moment zo rond de 6 seconden voor beide queries samen. veel te langzaam natuurlijk, en nauwelijks meer werkzaam. hoog tijd voor een optimalisatie dus. ik vraag me echter af wat hier de beste manier voor is, en of ik allicht een andere query kan gebruiken om hetzelfde resultaat sneller te gebruiken.
het inkrimpen van het gebied waarbinnen gezocht kan worden (datum plus/min een week bv dmv DATEDIFF) helpt er goed, en geeft volgens mijn benchmarks een snelheidsverhoging van zeker tien keer (meer naarmate een datum meer naar de extremen gekozen wordt), het enige is dat de query nu niet meer 100% waterdicht is; verschijnt er voor langer dan een week geen foto in de collectie dan gaat het fout. een kleinere window zorgt voor een snellere query, een grotere voor een langzamere, maar het probleem blijft; gaat de tijd tussen twee foto's over een bepaalde grens heen, dan loopt het spaak.
zijn er allicht nog andere manieren (sneller of waterdichter) om dit probleem op te lossen?
heb een database draaien met daarin de verwijzingen naar een collectie foto's. gesorteerd op datum, zodat in een website met een knopje vorige/volgende doorgelinkt kan worden naar de opvolgende foto's in de zelfde reeks.
momenteel zoek ik deze volgende en vorige foto op middels twee queries;
code:
1
| SELECT foto WHERE datum > foto_datum LIMIT 1; |
en vise versa.
aangezien de collectie inmiddels behoorlijk groot geworden is, gaat deze query steeds langzamer; op dit moment zo rond de 6 seconden voor beide queries samen. veel te langzaam natuurlijk, en nauwelijks meer werkzaam. hoog tijd voor een optimalisatie dus. ik vraag me echter af wat hier de beste manier voor is, en of ik allicht een andere query kan gebruiken om hetzelfde resultaat sneller te gebruiken.
het inkrimpen van het gebied waarbinnen gezocht kan worden (datum plus/min een week bv dmv DATEDIFF) helpt er goed, en geeft volgens mijn benchmarks een snelheidsverhoging van zeker tien keer (meer naarmate een datum meer naar de extremen gekozen wordt), het enige is dat de query nu niet meer 100% waterdicht is; verschijnt er voor langer dan een week geen foto in de collectie dan gaat het fout. een kleinere window zorgt voor een snellere query, een grotere voor een langzamere, maar het probleem blijft; gaat de tijd tussen twee foto's over een bepaalde grens heen, dan loopt het spaak.
zijn er allicht nog andere manieren (sneller of waterdichter) om dit probleem op te lossen?
Through meditation I program my heart to beat breakbeats and hum basslines on exhalation -Blackalicious || *BetuweKees was AFK; op de fiets richting China en verder