28. juni 2005 - 10:52Der 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 ?
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.
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 :)
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 :)
Synes godt om
Ny brugerNybegynder
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.