Maison >développement back-end >Tutoriel Python >Comment utiliser pymysqlpool dans la base de données Python MySQL ?
Cet article vous présente principalement les informations pertinentes sur le composant de pool de connexions Python Base de données MySQL pymysqlpool L'article le présente en détail à travers un exemple de code, qui a une certaine valeur de référence et d'apprentissage pour tous les amis qui en ont besoin. Jetons un coup d'œil ensemble ci-dessous.
Introduction
pymysqlpool (téléchargement local) est un nouveau membre de la boîte à outils de base de données, visant à fournir un pool de connexion à la base de données pratique middleware pour éviter la création et la libération fréquentes de ressources de connexion à la base de données dans l'application. Le pool de connexions lui-même est thread-safe et peut être utilisé dans un environnement multithread sans se soucier du partage des ressources de connexion par plusieurs threads
Fournit l'interface la plus compacte possible pour
;La gestion du pool de connexions est complétée au sein du package, et le client peut obtenir les ressources de connexion dans le pool via l'interface (retour
);
sera compatible avec dataobj dans la plus grande mesure et est facile à utiliser
Le pool de connexion lui-même a la fonction ; d'augmenter dynamiquement le nombre de connexions, c'est-à-dire que max_pool_size et step_size seront utilisés pour contrôler chaque augmentation du nombre de connexions et du nombre maximum de connexions
pymysql.Connection
Flux de travail de base
Après l'initialisation, les objets de connexion step_size seront d'abord créés et placés dans le pool de connexions
) ; Le client utilise l'objet de connexion
, après avoir effectué l'opération correspondante, appeler l'interface pour renvoyer l'objet de connexion
|--------| |--------------| | | <==borrow connection object== | Pool manager | | Client | | | | | ==return connection object==> | FIFO queue | |--------| |--------------|hôte : Adresse de la base de données
utilisateur : nom d'utilisateur du serveur de base de données
base de données : La base de données sélectionnée par défaut
port : Le port du serveur de base de données
charset :
Jeu de caractères1. Utilisez le gestionnaire de contexte du curseur (raccourci, mais il s'appliquera pour un. objet de connexion à chaque fois qu'il est obtenu, donc plusieurs appels sont inefficaces) :
pymysql.Connection
Veuillez tester davantage. Déplacez-vous vers test_example.py.
from pymysqlpool import ConnectionPool config = { 'pool_name': 'test', 'host': 'localhost', 'port': 3306, 'user': 'root', 'password': 'root', 'database': 'test' } def connection_pool(): # Return a connection pool instance pool = ConnectionPool(**config) pool.connect() return pool # 直接访问并获取一个 cursor 对象,自动 commit 模式会在这种方式下启用 with connection_pool().cursor() as cursor: print('Truncate table user') cursor.execute('TRUNCATE user') print('Insert one record') result = cursor.execute('INSERT INTO user (name, age) VALUES (%s, %s)', ('Jerry', 20)) print(result, cursor.lastrowid) print('Insert multiple records') users = [(name, age) for name in ['Jacky', 'Mary', 'Micheal'] for age in range(10, 15)] result = cursor.executemany('INSERT INTO user (name, age) VALUES (%s, %s)', users) print(result) print('View items in table user') cursor.execute('SELECT * FROM user') for user in cursor: print(user) print('Update the name of one user in the table') cursor.execute('UPDATE user SET name="Chris", age=29 WHERE id = 16') cursor.execute('SELECT * FROM user ORDER BY id DESC LIMIT 1') print(cursor.fetchone()) print('Delete the last record') cursor.execute('DELETE FROM user WHERE id = 16')pymysql : cette boîte à outils sera utilisée pour effectuer la connexion à la base de données et d'autres opérations
pandas : pandas a été utilisé lors des tests.
import pandas as pd from pymysqlpool import ConnectionPool config = { 'pool_name': 'test', 'host': 'localhost', 'port': 3306, 'user': 'root', 'password': 'root', 'database': 'test' } def connection_pool(): # Return a connection pool instance pool = ConnectionPool(**config) pool.connect() return pool with connection_pool().connection() as conn: pd.read_sql('SELECT * FROM user', conn) # 或者 connection = connection_pool().borrow_connection() pd.read_sql('SELECT * FROM user', conn) connection_pool().return_connection(connection)
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!