sql >> Database >  >> RDS >> Mysql

PHP MySQL-verbindingspersistentie

De persistentie wordt gedaan door de kopie van de PHP die is ingebed in de webserver. Normaal gesproken zou je gelijk hebben:als PHP in CGI-modus zou draaien, zou het onmogelijk zijn om een ​​blijvende verbinding te hebben, omdat er niets meer over zou zijn om vol te houden wanneer het verzoek is gedaan en PHP wordt afgesloten.

Omdat er echter een kopie van PHP is ingebed in de webserver, en de webserver zelf blijft draaien tussen verzoeken, is het mogelijk om een ​​pool van permanente verbindingen binnen die "permanente" PHP te onderhouden.

Houd er echter rekening mee dat op Apache multi-worker type servermodellen de verbindingspools PER KIND worden onderhouden. Als u uw poollimiet instelt op 10, heeft u 10 verbindingen per Apache-kind. 20 kinderen =200 connecties.

Aanhoudende verbindingen zullen ook leiden tot langdurige problemen met deadlocks en andere moeilijk te debuggen problemen. Onthoud:er is geen garantie dat de HTTP-verzoeken van een gebruiker worden afgehandeld door de DEZELFDE apache-kind/mysql-verbinding. Als een script halverwege een databasetransactie sterft, zal die transactie NIET worden teruggedraaid, omdat MySQL de HTTP-kant van de dingen niet ziet - het enige dat het ziet is dat de mysql<->apache-verbinding nog steeds open is en ervan uitgaat dat alles goed is.

De volgende gebruiker die die specifieke combinatie van apache/mysql-kind/verbinding raakt, komt nu op magische wijze in het midden van die transactie terecht, zonder enig idee dat de transactie open is. Kortom, het is het webequivalent van een ongespoeld toilet - alle "vuilnis" van de vorige gebruiker is er nog steeds.

Met niet-permanente verbindingen heb je gegarandeerd een 'schone' omgeving elke keer dat je verbinding maakt.



  1. Oracle vindt een beperking

  2. MySQL:u kunt de 'taken' van de doeltabel niet specificeren voor update in de FROM-clausule

  3. Grondbeginselen van tabeluitdrukkingen, deel 8 – CTE's, overwegingen voor optimalisatie vervolg

  4. pdo voorbereide uitspraken met jokertekens