25. august 2011 - 02:08Der er
9 kommentarer og 1 løsning
speed - nem måde at finde ud af hvilke mysql forespørgsler som kan gøres hurtigere
en af mine webshop er begyndt at have mange ordrer/kunder i databasen og mange produkter og load tiden er begyndt at blive lidt langsom. Måske også fordi jeg har lavet en masse om i php/mysql koden.
jeg vil høre om der findes en simpel måde at lokalisere de mest langsomme forespørgsler, eller lokalisere hvilke filer/forespørgsler jeg bør kigge på først.
Og evt om der findes noget smart php cache, som nemt kan sættes i spil?
JOIN Hvis du joiner tabeller skal du have den mindste tabel ind først - eller rettere den mindste query ind først. Det bruger DB-motoren til at finde resultaterne i den anden del af joinen.
Er du i tvivl om hvilken query der er mindst kan du skille den joinede query og sende dem afsted en ad gangen.
EXPLAIN EXPLAIN-statement viser hvordan DB-motoren tænker. Især godt ved komplekse joins.
Eksekvering Hvis du eksekverer statements direkte i MySQL (f.eks. fra phpMyAdmin) får du at vide hvor lang tid DB bruger.
Og måske kunne det være en idé at lave profiler på de sløve sider, det vil hurtigt give dig et overblik over hvilke specifikke ting der sløver dine sidevisninger ned!
Hvis omkostningerne skal holdes ned kan du eks. bruge Xdebug.
nøj det er dejligt med alt den hjælp man får herinde :o)
der er lidt og gå i gang med her ....
jeg har lige lavet en log funktion som skriver alle mysql kald så jeg kan se hvilke der tager lang tid og hvilke kald der gentages lidt for ofte eller står og looper. Der er masser at komme efter :o)
siden hedder i øvrigt petfoodnord.dk - men det undrer mig lidt at den blev langsom fra ca d. 8/8 og frem. det er lidt spooky og jeg aner ikke hvorfor. men kan det være fordi vi har fået bedre placering i søgemaskiner og derfor mange flere besøg?
Jeg var inde og kigge på din side. Jeg synes ikke den er langsom. De microsekunder der er, når man trykker et link er ikke mere end man må forvente, og næsten ingenting i sammenligning med dem der er her på Eksperten.
Bevares, jeg har set langsommere sites - men hurtig er den nu heller ikke. Jeg har dog mere på fornemmelsen, det er frontend koden, som halter.
Du loader en kæmpe Flash fil (på næsten 1 MB!) i toppen af sitet ... hvorfor det? Load i stedet en lille fil, der henter den store. Når vi nu har Flash filen fremme, så forstår jeg heller ikke, hvorfor det statiske billede i venstre side er del af Flash filen.
Endnu bedre ville det være at skrive et lille, lightweight slideshow i JavaScript - og vel at mærke uden i stedet at spilde kræfterne på store, unødvendige libraries.
Derudover er TABLE elementer ikke ligefrem de hurtigste elementer at rendere, og jeg så også et sted to nestede FONT tags - blot for at angive både farve og størrelse. Koden kan med fordel renses ret kraftigt op =)
Mange besøgende giver i øvrigt ikke langsommere sider. Kun hvis brugerne klumper sig sammen og kalder siderne samtidigt, og det er næppe tilfældet
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.