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
Opérations de base de données;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 | |--------| |--------------|
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')
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!