Blijvende connectie met MySQL

Status
Niet open voor verdere reacties.

NielsDesmet

Gebruiker
Lid geworden
19 mei 2008
Berichten
301
Ik wil een applicatie maken met mysql, php en ajax.
Het ajax deel vraagt informatie van een php pagina, die op zijn beurt verbinding maakt met mijn mysql database, er informatie uithaalt, en dit terugstuurt naar het ajax script.
Het probleem is, dit zou erg veel na elkaar gedaan moeten worden (ong. 5 tot zelfs 10 keer per seconde) en dus, omdat het php script telkens weer opnieuw wordt uitgevoerd, maakt hij een connectie met mysql, breekt af, maakt weer een connectie, breekt weer af, etc..

Ik vroeg me af of dat wel nodig is; is het niet veel sneller moest het mogelijk zijn om een soort blijvende connectie te maken die niet wordt afgebroken als het php script eindigt, maar enkel als ik dat expliciet vraag? Of maakt dat niet echt uit? Zo wel, is het mogelijk om zo'n connectie te maken en hoe?
 
Laatst bewerkt:
Het is wel mogelijk met de pconnect functie...

http://nl2.php.net/manual/en/function.mysql-pconnect.php

Maar als je zoveel pings doet naar je server, moet je je afvragen of je wel een goed idee hebt... 5 keer per seconde zou betekenen dat je je requests sneller stuurt dan ze opgevangen kunnen worden (vergeet de op-en-neer tijd niet, die is niet lang maar kan best oplopen met een minder snelle verbinding of een drukke server)

Wat probeer je precies te maken dat zoveel updates nodig heeft, en weet je zeker dat een AJAX app de beste oplossing is?
 
Ok, pconnect is inderdaad waar ik naar zoek. Maar hoe beëindig je die connectie dan?

Maar als je zoveel pings doet naar je server, moet je je afvragen of je wel een goed idee hebt... 5 keer per seconde zou betekenen dat je je requests sneller stuurt dan ze opgevangen kunnen worden (vergeet de op-en-neer tijd niet, die is niet lang maar kan best oplopen met een minder snelle verbinding of een drukke server)
Hmm ja, da's dan ook weer waar :p
Zou het in de plaats niet op een of andere manier mogelijk zijn om een soort sessie te creëren met 1 constante verbinding tussen client en server? (ik heb er geen idee van, ik ben nog niet zo vertrouwd met server side scripten)
 
Hey,

Heb je er al overnagedacht om al je resultaten in 1x op te halen dit in een array of xml file te zetten en dan uit te lezen? Nu weet ik niet precies wat het doel is van je script..

Maar vaak een connectie maken zoals wat jij in het voorbeeld aangeeft is killing voor een goede website. Probeer zo weinig mogelijk requests en connecties te maken. Zorg ervoor dat je vaak benodigde data die ongewijzigd blijft voor langere periodes maar 1 hoeft te laden! Scheelt een hoop in de prestaties van je website!

Gr. Wiizle
 
Tja, maar de gegevens worden ook wel constant geupdate (heh, nóg meer werk voor de server als ik er zo eens over nadenk :p)
Dus zou het echt niet mogelijk zijn om 1 keer een verbinding te maken en die te gebruiken voor de rest van de sessie?
 
Hier is PHP niet voor bedoeld. Period, over, uit, klaar.

Het kan wel, maar het is niet handig. En het zal nooit handig worden.



Kijk eens naar een JAVA-oplossing, bijvoorbeeld.
 
Ok, pconnect is inderdaad waar ik naar zoek. Maar hoe beëindig je die connectie dan?

Hmm ja, da's dan ook weer waar :p
Zou het in de plaats niet op een of andere manier mogelijk zijn om een soort sessie te creëren met 1 constante verbinding tussen client en server? (ik heb er geen idee van, ik ben nog niet zo vertrouwd met server side scripten)

Dit kán, maar het is idd echt geen goed idee. Je kunt beter op zoek gaan naar een andere oplossing (of, zoals ik al aangaf, vertellen wat je wilt bereiken zodat we gericht kunnen helpen ;))

PHP ondersteunt wel sockets, maar dat is allemaal erg wankel en het is er idd helemaal niet voor bedoeld.
 
Je kunt binnen PHP wel 1 keer een verbinding maken, die voor elke query gebruiken, maar niet als je ook van AJAX gebruik wil maken. Ik ben niet bekend met pconnect(), maar ik zou kijken of ik het met zo min mogelijk connects kan doen..

Misschien is een andere oplossing beter, maar misschien kun je je doel ook op een andere manier bereiken. Is het echt nodig dat je continue data manipuleert? Kan je je data op een tijdelijke locatie opslaan en dan een bulk in 1x verwerken? Als ik het zo hoor is het misschien beter om bepaalde data al van te voren in te laden en alle bewerkingen samen te voegen tot 1 bewerking met 1 connectie.

Ik weet ook niet op wat voor schaal je je website wilt gaan inzetten?
 
Ik vermoed dat dit om een chatapplicatie gaat, en dat gaat gewoon nooit heel goed werken met PHP.
 
Ik vermoed dat dit om een chatapplicatie gaat, en dat gaat gewoon nooit heel goed werken met PHP.
Wel... ok.
Vraag opgelost ;P

EDIT:
Voor de nieuwsgierigen: Ik had ergens een Ajax chat-appje gevonden op het internet, en bij wijze van experiment wou ik dat gewoon even gaan proberen namaken :D

EDIT2: Heh, de volgende post is niet nodig. Ik heb het precies nét op tijd nog ge-edit :p
 
Laatst bewerkt:
Ah ja, top voor mensen die ooit met dezelfde vraag zitten!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan