09. september 2005 - 12:07Der er
4 kommentarer og 1 løsning
Muligt at optimere her?
Her ser i en forkortet udgave af sql-kald jeg kører på mit website: SELECT t.noget, s.navn, b.brugernavn, b2.brugernavn AS brugernavn2 FROM transfers AS t, spillere AS s, brugere AS b, brugere AS b2 WHERE s.spiller_id = t.spiller_id AND b.bruger_id = t.bruger_til AND b2.bruger_id = t.bruger_fra ORDER BY t.id DESC LIMIT 20
Kaldet tager ofte 4-5 sekunder hvilket er utilfredsstillende.
Jeg har sat alle rigtige indexes på. Hvis jeg fjerner "ORDER BY" kommandoen tager kaldet ca. 0.2 sekunder.
Kan det på nogen måde optimeres så det kører hurtigere?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Jeg går ud fra, at feltet Id i tabellen transfers er PRIMARY KEY?
Prøv at sætte et Force index på:
SELECT t.noget, s.navn, b.brugernavn, b2.brugernavn AS brugernavn2 FROM transfers AS t FORCE INDEX(id), spillere AS s, brugere AS b, brugere AS b2 WHERE s.spiller_id = t.spiller_id AND b.bruger_id = t.bruger_til AND b2.bruger_id = t.bruger_fra ORDER BY t.id DESC LIMIT 20
Du kan først bruge FORCE INDEX på MySQL fra version 4.0.9, ellers kan du prøve med USE INDEX (som kan bruges fra version 3.23.12) i stedet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.