Avatar billede hkb-x Nybegynder
20. december 2007 - 14:15 Der er 10 kommentarer og
1 løsning

forbindelse til db - hvad er bedst

Hvad er enligt bedst... at åbne forbindelsen til databasen i begyndelsen af sit script og så lukke det i slutningen eller at åbne og lukke for hver forespørgsel... Her tænker jeg både på performance af webserver, performance af database server samt sikkerhed?

Jeg giver piont til den der bedst kan beskrive de enkelte punkter...
Avatar billede arne_v Ekspert
20. december 2007 - 15:26 #1
De 2 maader burde vaere transparente med hensyn til sikkerhed.

Performance er lidt mere komplekst !

1 SQL saetning & ingen connection pool:
  start/slut db interaction performer ens men skalerer meget bedre end start/slut script

1 SQL saetning & connection pool:
  start/slut db interaction performer ens men skalerer lidt bedre end start/slut script

>1 SQL saetning & ingen connection pool:
  start/slut db interaction performer daarligere men skalerer meget bedre end start/slut script

>1 SQL saetning & connection pool:
  start/slut db interaction performer ens men skalerer lidt bedre end start/slut script
Avatar billede hkb-x Nybegynder
20. december 2007 - 16:45 #2
og kan vi få det på dansk ;)
Avatar billede a1a1 Novice
21. december 2007 - 00:03 #3
der er da dansk/programerings sprog ;o)

det kommer også an på hvilket sprog du "scripter" (skriver) i, og "type"/konfiguration af database...
Avatar billede a1a1 Novice
21. december 2007 - 00:05 #4
hkb-x; aa er det samme som Å (arne har ikke dansk tastatur)

;o)
Avatar billede arne_v Ekspert
21. december 2007 - 04:01 #5
en connection pool er hvor applikationen (eller applikation serveren) åbner
N connections til databasen og når koden skal bruge en database connection så hentes
der en allerede åbnet fra poolen og når der closes så bliver den rigtigt lukket men
kun releaset tilbage til poolen
Avatar billede hkb-x Nybegynder
24. december 2007 - 14:09 #6
@a1
var mere fordi jeg ikke var sikker på hvad arne_v skrev

@arne_v
tak for uddybningen...
Hvis jeg har en server der kun kører php og en anden server der kun kører mysql og jeg i hvert script har mindst 10 sql forespørgsler til db'en hvad vil du så anbefale mig; At jeg åbner og lukker forbindelsen for hver forespørgsel eller at jeg åbner en forbindelse i starten af scriptet og så foretager alle forespørgsler og lukker i slutningen af scriptet?
Avatar billede arne_v Ekspert
24. december 2007 - 23:27 #7
PHP har ikke en rigtig connection pool.

For low-medium volume ville jeg bruge mysql_connect før første database interaktion og mysql_close efter sidste database interaktion.

For high-very high volume ville jeg bruge mysql_pconnect før første database interaktion (og
persistente connections er det nærmeste PHP har på en connection pool).

Og du skal nærlæse dokumentationen for mysql_pconnect så du ikke bliver overrasket over
en af de små side effekter.
Avatar billede arne_v Ekspert
24. december 2007 - 23:28 #8
Og for en god ordens skyld: mit kendskab til PHP og MySQL performance er baseret på
teori og common sense - ikke på praktisk erfaring.
Avatar billede arne_v Ekspert
21. januar 2008 - 04:38 #9
hkb-x ?
Avatar billede hkb-x Nybegynder
21. februar 2008 - 18:50 #10
undskyld mit fravær fra denne post... har haft meget at se til så har ikke fået tjekket op her inde...

@arne_v
hmm... jeg er stadig i tvivl om hvad der er bedst... jeg tror konklusionen må være at det kommer helt an på formålet ;)

tak for hjælpen... skriv et svar for point...
Avatar billede arne_v Ekspert
22. februar 2008 - 03:18 #11
svar
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