SMProxy (Swoole MySQL Proxy) est un pool de connexions à une base de données MySQL développé par Swoole basé sur le protocole MySQL.
principe
La connexion à la base de données est stockée en mémoire en tant qu'objet. Lorsque l'utilisateur doit accéder à la base de données, une connexion sera établie pour la première fois. Plus tard, au lieu d'établir une nouvelle connexion, un objet de connexion inactif établi sera retiré de la base de données. pool de connexions. Après utilisation, l'utilisateur ne ferme pas la connexion, mais remet la connexion dans le pool de connexions pour la prochaine requête. L'établissement et la déconnexion des connexions sont gérés par le pool de connexions lui-même.
Dans le même temps, vous pouvez également contrôler le nombre initial de connexions dans le pool de connexions, les limites supérieure et inférieure des connexions, le nombre maximum d'utilisations de chaque connexion, le temps d'inactivité maximum, etc. en définissant les paramètres de la connexion. piscine. Il peut également surveiller le nombre, l'utilisation, etc. des connexions à la base de données via son propre mécanisme de gestion. Si le nombre maximum de connexions est dépassé, la coroutine sera suspendue. Attendez qu'une connexion soit fermée avant de reprendre la coroutine pour continuer le fonctionnement.
caractéristiques
Prise en charge de la séparation en lecture et en écriture
Prend en charge le pool de connexion à la base de données, ce qui peut résoudre efficacement le goulot d'étranglement de la connexion à la base de données causé par PHP.
Prend en charge la norme SQL92
Utiliser la planification de coroutines
Prise en charge de plusieurs connexions de bases de données, de plusieurs bases de données, de plusieurs utilisateurs, d'une correspondance flexible
Se conformer au protocole natif MySQL, à l'agent middleware universel multilingue et multiplateforme
Prise en charge des transactions MySQL
Prise en charge du protocole HandshakeV10
Parfaitement compatible avec MySQL5.5 - 8.0
Compatible avec les principaux frameworks pour améliorer de manière transparente les performances