RadiantHeart Skrevet 28. mai 2009 Del Skrevet 28. mai 2009 Jeg har en tabell med en hel del "items". Disse tilhører noen ulike grupper og har derfor et groupid-felt. Det jeg forsøker å få til er å hente ut den nyeste "item"-en fra hver gruppe. Jeg får det forsåvidt til men spørringen ser ut til å ta alt for lang tid. Den ser omtrent slik ut: SELECT * FROM items WHERE timestamp IN ( SELECT max(timestamp) FROM items GROUP BY groupid ) ORDER BY timestamp DESC For å forklare spørringen litt mer så lages det altså først en liste over hver gruppes maksimale timestamp og så hentes alle "items" som har ett av disse timestampene. Dette tar 10-15 sekunder å kjøre. Hvorfor det? Og er det bedre løsninger? Lenke til kommentar
kaffenils Skrevet 28. mai 2009 Del Skrevet 28. mai 2009 Er noen av disse kolonnene med i en primary key? Inngår noen av disse kolonnene i en index? Isåfall hvilke kolonner og hvilken rekkefølge er kolonnene i disse indexene. En løsning som kanskje vil fungere er å opprette to indexer. En med kolonnene groupid og timestamp, og en med kun kolonnen timestamp. Lenke til kommentar
RadiantHeart Skrevet 28. mai 2009 Forfatter Del Skrevet 28. mai 2009 (endret) Er noen av disse kolonnene med i en primary key? Inngår noen av disse kolonnene i en index? Isåfall hvilke kolonner og hvilken rekkefølge er kolonnene i disse indexene. En løsning som kanskje vil fungere er å opprette to indexer. En med kolonnene groupid og timestamp, og en med kun kolonnen timestamp. Forsøker løsningen du foreslo, i mellomtiden kan du se for deg selv hvordan det er satt opp i øyeblikket: Progid er den samme jeg for enkelthets skyld kalte groupid i forrige post. Endret 28. mai 2009 av RadiantHeart Lenke til kommentar
RadiantHeart Skrevet 28. mai 2009 Forfatter Del Skrevet 28. mai 2009 Der var det fikset med noe i nærheten av det do foreslo. Takker så meget for hjelpen. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå