Maison  >  Article  >  base de données  >  Pool de connexions à la base de données MySQL SMProxy

Pool de connexions à la base de données MySQL SMProxy

藏色散人
藏色散人avant
2019-02-18 11:38:062801parcourir

Swoole MySQL Proxy, un pool de connexions à une base de données MySQL développé par Swoole basé sur le protocole MySQL.

Pool de connexions à la base de données MySQL SMProxy

Principe

Stocker la connexion à la base de données en tant qu'objet en mémoire Lorsque l'utilisateur a besoin d'accéder à la base de données, la connexion le fera. être établi pour la première fois. Au lieu d'établir une nouvelle connexion, un objet de connexion inactif établi est retiré du 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.

Parallèlement, vous pouvez également contrôler le nombre initial de connexions dans le pool de connexions, les limites supérieure et inférieure du nombre de connexions, le nombre maximum d'utilisations de chaque connexion, le temps d'inactivité maximum, etc. en définissant les paramètres du pool de connexions. 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 et la coroutine reprendra jusqu'à ce qu'une connexion soit fermée pour continuer l'opération.

Caractéristiques

-Prise en charge de la séparation en lecture et en écriture

-Prise en charge du pool de connexion à la base de données, qui peut résoudre efficacement le goulot d'étranglement de connexion à la base de données causé par PHP

-Prise en charge de la norme SQL92

-Adoption de la planification de coroutines

-Prend en charge plusieurs connexions de bases de données, plusieurs bases de données, plusieurs utilisateurs, combinaison flexible

-Conforme au protocole natif MySQL , agent middleware universel multilingue et multiplateforme

-Prend en charge les transactions MySQL

-Prend en charge la version du protocole HandshakeV10

-Parfaitement compatible avec MySQL4.1 - 8.0

-Compatible avec tous les principaux frameworks, améliore les performances de manière transparente

Intention de conception originale

PHP n'a pas de pool de connexions, la base de données sera donc pleine de connexions lorsque la concurrence est élevée, Mycat et d'autres middlewares de base de données rendront certains SQL inutilisables, par exemple, l'ajout par lots n'est pas pris en charge et il est trop volumineux. J'ai donc écrit ce middleware léger qui prend uniquement en charge le regroupement de connexions et la séparation lecture-écriture. L'utilisation de la planification de coroutines Swoole et du transfert de protocole HandshakeV10 rend le programme plus stable. Il n'est pas nécessaire d'analyser tous les corps de packages SQL comme Mycat, ce qui augmente la complexité.

Tutoriel recommandé : "tutoriel mysql"http://www.php.cn/course/list/51.html

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
Article précédent:Pourquoi utiliser MySQLArticle suivant:Pourquoi utiliser MySQL