L'idée derrière les connexions persistantes est que les connexions entre les clients et la base peuvent être réutilisés par un autre processus client, au lieu d'être détruits et recréés de nombreuses fois. Cela réduit le coût de création des connexions à chaque fois que l'une d'entre elle est requise, car les connexions sont mises en cache pour être recyclées.
  Contrairement à l'extension MySQL, MySQLi ne fournit pas de fonction
  séparée pour ouvrir des connexions persistantes. Pour ouvrir une connexion
  persistante, vous devez ajouter p: au nom de l'hôte
  lors de la connexion.
 
  Le problème des connexions persistantes est qu'elles peuvent être laissées
  dans un état imprévisible, par les clients. Par exemple, un verrou de table
  peut avoir été posé avant que le client ne se déconnecte inopinément. 
  Un nouveau client va alors prendre la connexion, mais 
  tel quel
. Il faudrait alors que le nouveau venu effectue
  un nettoyage en profondeur de la connexion avant de pouvoir la réutiliser
  sans parasitage, ce qui est un inconvénient pour le programmeur.
 
  La connexion persistante de l'extension mysqli 
  fournit une méthode de nettoyage automatique. Le nettoyage est effectué
  par mysqli et inclut :
 
L'annulation des transactions actives.
La fermeture et destruction des tables temporaires.
Le déverrouillage des tables
La remise à la valeur par défaut les variables de sessions
La libération des commandes préparées (cela arrive toujours avec PHP)
La fermeture du gestionnaire
La libération des verrous posés par GET_LOCK()
Cela assure que la connexion persistante est dans une condition correcte avant d'être remise dans le groupe de connexion, et qu'un client différent la reprenne.
  L'extension mysqli effectue ce nettoyage e
  appelant automatiquement la fonction C mysql_change_user().
 
Le nettoyage automatique a ses avantages et ses inconvénients. L'avantage est que le programmeurs n'a pas besoin de s'en inquiéter, car il est appelé automatiquement. Cependant, l'inconvénient est que ce code peut éventuellement être un peu plus lent, car il doit être appelé à chaque fois que la connexion est retournée dans le groupe d'attente.
  Il est possible de désactiver le nettoyage du code, en compilant
  PHP avec l'option MYSQLI_NO_CHANGE_USER_ON_PCONNECT.
 
Note:
L'extension
mysqlisupporte les connexions persistantes avec le MySQL Native Driver et avec la bibliothèque MySQL.
