Avatar billede neonman Nybegynder
28. juni 2005 - 10:52 Der er 3 kommentarer og
1 løsning

pconnect eller connect hvad for en og hvorfor

Sider her og under mig lidt

hvad er forskellen på pconnect og connect ? og skal hvor når skal man lukke sin database...

har nermlig hørt lidt om at connect skal man lukke og åben alt efter hvornår man skal bruge dem. hvor fra pconnect skal man bare la stå åbenet da den genbruger ens connectes string kan det passe ?
Avatar billede dennismp Nybegynder
28. juni 2005 - 11:01 #1
Du behøver ikke at lukke en mysql-forbindelse. Det gør PHP når den rydder op efter siden er vist

Forskellen på pconnect() og connect() er at pconnect() giver der en persistent forbindelse. Dvs forbindelsen bliver ikke lukket imellem to hits. Det gør connect().

Apahce bruger en del workers til at fordele arbejdet ud på, så pconnect gælder kun inden for en worker, dvs du får fx 10 forbindelser der er åbent til datbaasen hvis der er 10 workers.

Med connect() bruger du kun antal forbindelser der aktuelt er brug for.

pconnect() åbner en forbindelse og genbruger den:
fordel: hurtigere - oprettelsen af forbindelsen sker kun een gang (.. per worker)
ulemper: kræver flere resourcer, ram og databasen skal snakke med flere (evt inaktive) php'er

connect():
fordel: åbner efter behov
ulemper: at åbne en forbindelse har et overhead, så hvis du får rigtig mange hits så kan dette være en betydelig del af den tid du bruger på databasen.

Hvad skal man så vælge. Som udgnagspunkt connect(). Langt de fleste sites har ikke nok hits til at retfærdiggøre pconnect(). Og det kommer også lidt an på opsætninig. Jeg har været på et webhotel med mange (50+) workers. 50 forbindelser med memory osv koster en del. Og sitet havde ikke nok volume til at det gav nogen fordel overhovedet. Så jeg havde en masse ubrugte forbindelser åbnet

Fælles for dem begge er, at du ikke behøver at lukke dem. Lukker du en pconnect() vil den blive ignoreret. Så det eneste du skal ændre i koden for at gå fra connect() til pconnect() er et ekstra 'p'.

Den eneste reele måde at finde ud af hvad der er bedst er at lave performance testning. Se hvad der giver mest. Men mit bud er nok, at connect() er rigeligt.
Avatar billede neonman Nybegynder
28. juni 2005 - 11:22 #2
okay :) takker.... der var nermlig en der klager over min code var dårlig bygget op :) fordi den forbinder alt for mange gange til en SQL database :S og det er lidt skidt... for var ikke det der var meninen smid svar :) du har lige gide mig svar på mit spg :)
Avatar billede dennismp Nybegynder
28. juni 2005 - 11:27 #3
Så må vedkommende jo sætte deres server ordenligt op :)

Herligt du kunne tolke/bruge mit svar :)
Avatar billede neonman Nybegynder
28. juni 2005 - 11:31 #4
hæhæ :D han sage det var n00b code *GG* :) og han ikke kunne gøre for vi var hostet på en dårlig server.... vi var så sponsert af ham der ejere nationx så tror nu nok han kan sætte en ornlig server op :) hæhæ.... og den nye efere af side er hostet hos webhosting hvor de skal leve af ham *GG* :) så ja.. men her er dine points :)
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