Avatar billede phpbegynder2004 Nybegynder
22. maj 2007 - 18:09 Der er 4 kommentarer og
1 løsning

Optimering af database requests

Hej Eksperter,

Jeg har en hjemmeside med 300 brugere, hvoraf 50 af dem logger ind hver dag.
Jeg bruger servage.net som host, og de tilbyder 3600gb trafik om måneden, hvilket er rigeligt! Mit store problem er, at jeg (tilsyneladende) har en rigtig dårlig database programmeringsstil.
For hver dag går databasen ned :(
Det er ikke "too many connection" fejl. Den kan bare ikke connecte. Jeg er ret overbevist, at fejlen ligger på min side, og at jeg skal skrive nogle mere effektive database reuqests.
Jeg ved bare ikke:
1. Hvor det dårlige kode er
2. Hvad der er effektivt og hvad der er ineffektiv kode.

Findes der nogle programmer der kan finde ud af, hvilke scripts der belaster databasen mest?

Jeg vil godt give Jer noget kode (plejer folk herinde at være glade for :) ), men jeg ved jo ikke hvor den er gal henne :(

Kan i hjælpe mig?

På forhånd mange tak!
Avatar billede 0xffff Nybegynder
22. maj 2007 - 19:37 #1
Ja, at have en dårlig kodestil er en mulighed for dårlig performance. Men, den største synder er normalt hvis dine index er forkerte. Dine index skal være optimerede til dine queries, der kan evt. også være problemer med din databasenormalisering.

Det er bare noget du skal have med i dine overvejelser.

Jeg husker den første gang jeg skulle lave noget med query optimering tilbage i 1998. Jeg optimerede og optimerede på koden og queryen og query tog stadig 5min at køre, hvad jeg simpelthen ikke fattede. Så kom en daværende kollega ind og oprettede 2 index. Og vupti, query kørte på under 3sekunder. Er ufatteligt hvor stor en forskel det kan gøre.
Avatar billede farmerib Nybegynder
22. maj 2007 - 22:15 #2
En ting er at bruge indexes, men du burde nok i først omgang kikke på dine connections strings. Hvis du ikke får lukket tids nok, så vil connectionen hænge og det vil tage længere tid at eksekverer dine quaries.

50 brugere burde ikke lægge en mysql db ned.
Avatar billede arne_v Ekspert
23. maj 2007 - 04:14 #3
det er ikke bare de andre sites på web hotellet der hapser alle connections ?
Avatar billede phpbegynder2004 Nybegynder
30. maj 2007 - 00:40 #4
Tak for svarene. Jeg tror det er mine indexes den er galt med. Har nemlig først hørt om dem for nylig (vidste ikke de eksisterede...). Jeg har nu oprettet indexes ved alle tabeller, men har ingen anelse om de "sidder" rigtigt. Derudover har jeg på ingen måde optimeret mine queries til at følge disse indexer, da jeg ikke ved hvordan man gør det.

Har netop checket nogle stats gennem phpmyadmin. Ved ikke helt hvad det betyder, men tror det er ret slemt...

Slow_queries      1.200

Handler_read_rnd      350 M
Handler_read_rnd_next      52,19 G

Created_tmp_disk_tables      2.759 k
Delayed_errors      1.747
Select_full_join      474 k
Select_range_check      96

På forhånd tak for hjælpen.
Avatar billede phpbegynder2004 Nybegynder
17. september 2007 - 02:50 #5
Lukket
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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



IT-JOB

Staten og Kommunernes Indkøbsservice A/S (SKI)

2nd level IT-supporter

Unik System Design A/S

Udviklingschef

Udviklings- og Forenklingsstyrelsen

Teknisk tester der brænder for automatisering

Cognizant Technology Solutions Denmark ApS

Senior Test Manager