sql >> Database >  >> RDS >> Mysql

PHP mysql_connect set wait_timeout

Het is niet goed om langdurig vast te houden aan DB-verbindingen, omdat de DB slechts een vast aantal verbindingen tegelijk biedt; als je er al heel lang een gebruikt, betekent dit dat je database minder capaciteit heeft om andere verzoeken af ​​te handelen, zelfs als je eigenlijk niets doet met die verbinding.

Ik raad aan om de verbinding te verbreken als het programma het voorlopig niet meer gebruikt, en opnieuw verbinding te maken als het tijd is om meer DB-werk te doen.

Bovendien zal deze oplossing uw programma beschermen tegen mogelijke downtime van de database, dat wil zeggen als u uw DB-server opnieuw moet opstarten (het gebeurt zelfs in het best ondersteunde netwerk). Als je de verbinding levend houdt (dwz een DB-ping volgens de andere antwoorden), dan zal een dergelijke gebeurtenis je achterlaten met precies hetzelfde probleem dat je nu hebt. Met een goed beheerde verbinding die wordt verbroken wanneer deze niet nodig is, kunt u uw daemon veilig laten draaien, zelfs als u downtime op uw DB hebt gepland; zolang het voor de duur inactief blijft, hoeft het niet wijzer te zijn.

(terzijde, ik zou ook twijfelen aan de wijsheid van het schrijven van een PHP-programma dat continu draait; PHP is ontworpen voor webverzoeken van korte duur. Het is misschien in staat om lange termijn daemon-programma's uit te voeren, maar er zijn betere tools voor de klus)



  1. Hoofdlettergevoelige variabelen in SQL Server

  2. MYSQL-syntaxis evalueert niet niet gelijk aan in aanwezigheid van NULL

  3. Alle triggers uit een database in SQL Server verwijderen of verwijderen?

  4. host localhost mag geen verbinding maken met deze MySQL-server