Maison >base de données >tutoriel mysql >Comment puis-je remplir efficacement les bases de données MySQL avec des listes de dictionnaires à l'aide de la méthodeexecutemany() de Python ?
Remplir efficacement les bases de données MySQL avec des listes de dictionnaires à l'aide d'Executemany en Python
L'insertion de grands ensembles de données dans des bases de données MySQL peut souvent conduire à des inefficacités et à des bases de données potentielles blocages. Pour résoudre ce problème lorsque vous travaillez avec des données représentées sous forme de listes de dictionnaires, envisagez d'utiliser la méthodeexecutemany().
Dans le scénario présenté, l'approche originale consiste à insérer manuellement chaque ligne de la table dans la base de données, ce qui peut être fastidieux et sujet aux erreurs. Pour optimiser ce processus, executemany() fournit un moyen pratique d'exécuter plusieurs instructions SQL avec un seul appel de fonction.
Pour utiliser executemany() efficacement, restructurez les données en extrayant les valeurs des dictionnaires et en créant une liste. de tuples. Chaque tuple représente une ligne du tableau, contenant les valeurs correspondantes pour chaque colonne.
itemBank = [] for row in rows: itemBank.append(( tempRow2['Item_Name'], tempRow1['Item_Price'], tempRow3['Item_In_Stock'], tempRow4['Item_Max'], getTimeExtra )) #append data
Ensuite, créez la requête SQL avec des espaces réservés pour les valeurs des paramètres, qui seront remplacées par les valeurs des tuples dans la fonction exécutermany().
q = """ insert ignore into TABLE1 ( Item_Name, Item_Price, Item_In_Stock, Item_Max, Observation_Date ) values (%s,%s,%s,%s,%s) """
Enfin, exécutez la fonction exécutermany() avec les données modifiées et la requête SQL.
try: x.executemany(q, itemBank) conn.commit() except: conn.rollback()
Cette approche améliore considérablement l'efficacité en exécutant plusieurs lignes dans une seule opération, réduisant ainsi la surcharge associée aux insertions de lignes individuelles. De plus, il évite les blocages potentiels de la base de données en répartissant la charge sur moins de transactions.
En utilisantexecutemany() pour insérer des listes de dictionnaires dans les bases de données MySQL, les développeurs peuvent rationaliser leurs processus d'insertion de données, améliorer les performances des bases de données et minimiser les problèmes. risque de blocage.
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!