Als ik gebruik maak van ajax zit ik met het probleem dat de server de mysql connectie niet afsluit maar in sleep zet ook al gebruik ik de mysql_close() functie.
Volgens mij is dat heel normaal. PHP houdt een paar verbindingen "warm" zodat hij die kan hergebruiken bij de volgende request, aangezien hergebruiken goedkoper is dan een nieuwe verbinding aanmaken.
Dit gaat allemaal buiten *_pconnect om, maar werkt ongeveer hetzelfde. Als het goed is houdt PHP het zelf wel binnen de perken, en zou dit geen probleem moeten zijn.
Elke keer als ik een request doen dan maakt php een nieuw connectie aan.
Hij blijft gewoon in slaap staan en doet voor de rest niets meer met dat process.
Is er geen manier om slapende processen de killen vanuit php dan?
AJAX zal geen mysql connecties afsluiten of open laten staan. De PHP pagina waar je je request op afvuurt doet dit.
Ik zou me overigens geen zorgen maken over connecties met de status 'sleep'. Deze worden vanzelf afgesloten na een x aantal seconden (mysql server instelling). Als het goed is zijn deze connecties zelfs een snelheidswinst.
Zoals Jelmer al aangaf is dit geen probleem / storing, maar standaard gedrag van de database.
ja ok.
Maar als je vaak een request doet krijg ik altijd het probleem van
to_many_connection.
Dit is vrij irritand voor de gebruiker.
Ga de database dan eens configureren, dat is 999 van de 1000 keer namelijk nog niet gedaan. Dat er dan dingen fout gaan, is vrij logisch. Zeker wanneer je het hebt over de dramabase MySQL...
Daarnaast zul je ook php.ini correct moeten configureren.
Wanneer je standaard instellingen gebruikt, zul je nooit optimaal gebruik kunnen maken van een toepassingen. En dat is zeker met MySQL het geval, met standaard instellingen is MySQL niet eens in staat om data correct op te slaan of queries correct uit te voeren.
Dat is een vrij irritante limiet op je database server dan. Je kunt er ook voor kiezen om geen gebruik te maken van persistent connecties, maar denk ook niet dat je hier veel mee geholpen bent.