Maison  >  Article  >  développement back-end  >  Comment établir une connexion persistante entre PHP et la base de données MySQL

Comment établir une connexion persistante entre PHP et la base de données MySQL

little bottle
little bottleavant
2019-04-23 16:08:213639parcourir

Cet article présente les étapes spécifiques de la connexion persistante entre PHP et la base de données MySQL. Les amis dans le besoin peuvent en apprendre davantage. J'espère que cela vous sera utile.

Connexion persistante à la base de données :

1. Une connexion persistante à la base de données fait référence à une connexion qui n'est pas fermée à la fin de l'exécution du script. Lorsqu'une demande de connexion persistante est reçue. PHP vérifiera s'il existe déjà une connexion persistante identique (qui a été ouverte précédemment). Si elle existe, cette connexion sera utilisée directement ; si elle n'existe pas, une nouvelle connexion sera établie. La connexion dite « même » fait référence à une connexion au même hôte utilisant le même nom d'utilisateur et le même mot de passe.

Tutoriels associés : Tutoriel vidéo MySQL

2 La première méthode consiste à utiliser PHP comme interpréteur de langage exécuté séparément (CGI Wapper). Dans ce cas, il n'y a aucune différence entre l'utilisation d'une connexion persistante et d'une connexion non persistante, car l'exécution du script PHP lui-même n'est pas persistante.

3. Utiliser PHP comme module d'un serveur Web multi-processus. Cette méthode n'est actuellement applicable qu'à Apache Lorsque le même client fait une requête au serveur pour la deuxième fois, elle peut être utilisée par. un sous-processus différent à gérer. Après avoir ouvert une connexion persistante, toutes les pages suivantes qui demandent le service SQL peuvent réutiliser la connexion SQL Server établie.

4. Lors de l'utilisation d'un verrou de table de données dans une connexion persistante, si le script ne peut pas libérer le verrou de table de données pour une raison quelconque, les scripts suivants utilisant la même connexion seront définitivement bloqués, nécessitant le redémarrage du service httpd. . Ou un service de base de données.

5. Lors de l'utilisation du traitement des transactions, si le script se termine avant que le blocage de la transaction ne se produise, le blocage affectera également le script suivant utilisant la même connexion

6. ::ATTR_PERSISTENT) pour accéder à la base de données, un processus de travail PHP-FPM correspond à une longue connexion à MySQL

Une fois la requête terminée, PHP ne libérera pas la connexion à MySQL pour la réutilisation de ce processus. est très important pour le programme. Il est transparent.

Cela peut être considéré comme le « pool de connexions à la base de données » maintenu par PHP-FPM.

7. mais cela augmentera la charge sur la base de données.

Connexion persistante PDO :

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));

Preuve :

Tutoriels associés :Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer