sql >> Database teknologi >  >> RDS >> Mysql

PHP mysql_connect sæt wait_timeout

Det er ikke godt at hænge på DB-forbindelser i lange perioder, fordi DB'en kun giver et fast antal forbindelser på ethvert tidspunkt; hvis du bruger en i flere år, betyder det, at din DB har mindre kapacitet til at håndtere andre anmodninger, selvom du faktisk ikke gør noget med den forbindelse.

Jeg foreslår, at du dropper forbindelsen, hvis programmet er færdig med at bruge den for øjeblikket, og genopretter forbindelsen, når tiden er inde til at udføre mere DB-arbejde.

Derudover vil denne løsning beskytte dit program mod mulig databasenedetid, dvs. hvis du skal genstarte din DB-server (det sker, selv i det bedst understøttede netværk). Hvis du holder forbindelsen i live (dvs. et DB-ping ifølge de andre svar), så vil en begivenhed som den efterlade dig med nøjagtig det samme problem, som du har nu. Med en korrekt administreret forbindelse, der afbrydes, når det ikke er nødvendigt, kan du roligt lade din dæmon køre, selvom du har planlagt nedetid på din DB; så længe den forbliver inaktiv i hele varigheden, behøver den ikke at være klogere.

(som en sidebemærkning vil jeg også stille spørgsmålstegn ved klogskaben i at skrive et PHP-program, der kører kontinuerligt; PHP er designet til kortvarig web-anmodning. Det kan muligvis køre langsigtede daemon-programmer, men der er bedre værktøjer til jobbet)



  1. Er InnoDB (MySQL 5.5.8) det rigtige valg til multi-milliard rækker?

  2. Sådan ændres en bruger til superbruger i PostgreSQL

  3. Oracle PL/SQL - samlinger (indlejrede tabeller)

  4. Indsæt???? i mysql-databasen, når du sender fra c#-kode på persisk sprog