Avatar billede DGudiksen Nybegynder
13. december 2010 - 19:41 Der er 12 kommentarer og
1 løsning

Siden er langsom ved meget forbrug.

Hej allesammen, har lavet mig en hjemmeside, som der ind i mellem er massere af brugere på. men så snart at der kommer mange brugere der på bliver siden langsommere og langsommere.

Jeg er klar over at det er min kode og muligvis min database opbygning som skal optimeres, da koden bare er "hurtig" skrevet.

Har ikke fået kigget på det endnu da jeg ikke er i nærheden af min stationære pc, som jeg koder på.

Men ville hører hvad i evt. havde af ideer til at gøre det hurtigere?
f.eks at man skal sørge for at ens felter i mysql databasen er int hvis man ved der kun bliver brugt heltal, osv osv.

Håber på at i kan komme med så mange ideer som overhovedet muligt, også til hvordan i måske tidligere selv har gjort.

Ved godt at problemet også kan skyldes en langsom server, men det tror jeg nu ikke er problemet (www.servage.net).

Point fordeles ud til alle de brugbare svar, så lig et svar så snart du skriver noget brugbart.

Tak på forhånd.
Mvh
Avatar billede The_Buzz Novice
13. december 2010 - 20:06 #1
Hejsa

Jeg kender det godt - og jeg tror at en af de ting der kan være galt - er at du ikke alle steder - eller måske nogensinde? Lukker forbindelsen til Mysql databasen med mysql_close($connection) ?

http://php.net/manual/en/function.mysql-close.php
Avatar billede zynzz Praktikant
13. december 2010 - 20:07 #2
Der kan være mange årsager til du har det problem...

Nogle bud kunne være at:

1. Sæt varibler til den type du skal bruge..
2. Lav en connection til databasen, istedet for at oprette en ny hver gang..
3. Cache evt. dit data så det ikke skal hentes hver gang...
4. optimere din kode så du ikke henter alt muligt du ikke skal bruge alligevel...


Der er sikkert en masse andre ting du kan gøre...
Avatar billede zynzz Praktikant
13. december 2010 - 20:11 #3
Som The_Buzz også skriver kan dette også være en årsag til et problem.. Skulle gerne lukke ned selv, hvis du har en ny version af php...
Avatar billede DGudiksen Nybegynder
13. december 2010 - 20:19 #4
hej allesammen tak for svarene.

#1 - Du har ret, troede faktisk at den selv gjorde det.

#2 - hvad mener du med at cache data, og hvordan gør man det?

Håber på flere ideer.
Avatar billede coderdk Praktikant
13. december 2010 - 20:19 #5
Hvis det er din egen server, så kør en slow query log, så kan du få et billede af hvilke queries der kan optimeres. Hvis ikke du kan sætte en sådan log op, er bare at gå i gang med at se på dine queries, evt køre en EXPLAIN på dem for at se om de bruger de korrekte index'er osv.
Avatar billede DGudiksen Nybegynder
13. december 2010 - 20:30 #6
coderdk -> Det er ikke min egen server, men jeg forstår heller ikke helt hvad du mener, måske du kan udbyde det? - altså hvad er og gør EXPLAIN?
Avatar billede The_Buzz Novice
14. december 2010 - 09:05 #7
PHP nyere versioner lukker måske nok selv SQL connections, men..

Der er stadig maksimum 100-151 connections på een gang
http://dev.mysql.com/doc/refman/5.1/en/too-many-connections.html

Hvis tingene går så hurtigt at PHP ikke selv får lukket for de 100 før der er anmodning om yderligere, så må tingene jo ligesom vente :P

"Open connections (and similar resources) are automatically destroyed at the end of script execution. However, you should still close or free all connections, result sets and statement handles as soon as they are no longer required. This will help return resources to PHP and MySQL faster."
http://us3.php.net/manual/en/mysqli.close.php
Avatar billede repox Seniormester
14. december 2010 - 12:55 #8
Det er sjovt at fokusere på antallet af åbne MySQL sessioner.
Sandsynligheden for at det er det faktiske problem er ikke så stor. Sandsynligheden for at Servage er det faktiske problem er temmelig stort (hvilket jeg nemt kan udtale mig om eftersom jeg selv tidligere har været en meget utilfreds kunde hos dem).

Servage har temmelig mange ubrugelige og langsomme MySQL servere som var en af de kampe jeg havde med dem - på trods af at blive flyttet fra den ene server til den anden adskillige gange, resulterede det altid i at MySQL serveren blev langsom og til tider umulig at komme i kontakt med igen.

Alternativet er netop at cache MySQL dynamisk genereret indhold.
Der er nogle forskellige metoder at gøre det på - her er en tutorial til en af dem: http://php-html.net/tutorials/creating-a-simple-php-cache-script/
Avatar billede intenz Novice
14. december 2010 - 13:12 #9
Enig med #8, åbne forbindelser til databasen kan jeg heller ikke forestille mig er problemet.
Prøv evt. mysql_pconnect i stedet for mysql_connect, så kan du genbruge dine connections, hvis du mener der er et behov.

Hvad med index på tabellerne? Findes de? Og er de sat korrekt?
Avatar billede bi-ju Nybegynder
14. december 2010 - 16:56 #10
Jeg ville mene at det ville relevant og vide om den server der kører din hjemme sider er kraftig nok og har en hurtig netforbindelse.

Du kan køre hjemmesider på hvilken somhelst computer , men er der ikke nok ram og er opload og downloaden for langsom går det galt når der er mange på.
Avatar billede intenz Novice
14. december 2010 - 17:02 #11
Der er mange gode forslag, men det er kun gæt så længe vi ikke ved hvad "mange brugere" egentlig betyder.

Snakker vi 100, 1.000, 10.000 eller? Er det de mindre antal, vil det typisk være opsætning af tabeller i databasen, eller et unødvendigt højt antal af kald til databasen der gør siden langsom.
Avatar billede bi-ju Nybegynder
14. december 2010 - 17:20 #12
Det ganske rigtig man er nød til at starte fra bunden af med hvad der evt. kan forårsage at ens hjemmeside bliver langsom.
Her snakker vi udstyr,opsætning,netforbindelse.
Avatar billede repox Seniormester
14. december 2010 - 18:17 #13
Jeg står fast ved min udtalelse om at det er servage.net der røvrender deres kunder med deres tåbelige serveropsætning.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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