Avatar billede learner Praktikant
25. august 2011 - 02:08 Der 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?

På forhånd tak
Avatar billede arne_v Ekspert
25. august 2011 - 02:46 #1
Avatar billede vagnk Juniormester
25. august 2011 - 08:25 #2
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.
Avatar billede vagnk Juniormester
25. august 2011 - 08:28 #3
Og lad mig så lige anbefale en grundig normalisering og indeksering af tabeller.
Avatar billede grunken Nybegynder
25. august 2011 - 14:59 #4
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.

http://devzone.zend.com/article/2899-Profiling-PHP-Applications-With-xdebug
Avatar billede olebole Juniormester
25. august 2011 - 15:50 #5
<ole>

*) Indekser dine tabeller korrekt.

*) Brug kun *, hvis du skal bruge alle felterne - ellers specificer hvilke felter, der skal udtrækkes.

*) Brug LIMIT 1 i SELECT og UPDATE, når du kun vil hente eller opdatere én post i DB'en.

/mvh
</bole>
Avatar billede learner Praktikant
25. august 2011 - 21:32 #6
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?
Avatar billede vagnk Juniormester
26. august 2011 - 08:36 #7
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.
Avatar billede olebole Juniormester
26. august 2011 - 17:24 #8
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
Avatar billede learner Praktikant
05. oktober 2012 - 15:27 #9
Jeg har ikke lukket denne tråd, for jeg er ikke færdig med at lære af den ;o)

Håber det er OK med Jer, ellers smid lige et svar.

Tak for jeres gode bidrag
Avatar billede learner Praktikant
20. november 2014 - 10:20 #10
lukker og takker for gode indlæg
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester