Maison > base de données > tutoriel mysql > le corps du texte

Comment puis-je effectuer des insertions groupées efficaces avec SQLAlchemy ORM ?

DDD
Libérer: 2024-11-16 07:58:02
original
205 Les gens l'ont consulté

How can I perform efficient bulk inserts with SQLAlchemy ORM?

Insérations groupées à l'aide de SQLAlchemy ORM

Lors de l'insertion de données dans une base de données, l'efficacité est cruciale. Par défaut, SQLAlchemy insère des objets individuels dans des tables, ce qui peut prendre plus de temps pour les opérations groupées.

SQLAlchemy prend-il en charge les insertions groupées ?

Oui. À partir de la version 1.0.0, SQLAlchemy inclut des opérations en masse. Ceux-ci vous permettent d'effectuer des insertions ou des mises à jour en masse en une seule transaction.

Comment effectuer des insertions en masse

Pour effectuer une insertion en masse à l'aide de SQLAlchemy ORM, suivez ces étapes :

  1. Créez une liste d'objets que vous souhaitez insérer.
  2. Appelez le méthode Bulk_save_objects() de votre session en passant la liste des objets comme argument.
  3. Validez la session pour terminer l'opération d'insertion.

Par exemple :

s = Session()
objects = [
    User(name="u1"),
    User(name="u2"),
    User(name="u3")
]
s.bulk_save_objects(objects)
s.commit()
Copier après la connexion

Amélioration des performances avec les sessions

Par défaut, SQLAlchemy valide chaque opération immédiatement. Pour améliorer les performances des insertions groupées, vous pouvez désactiver la validation automatique et la validation manuelle une fois tous les objets ajoutés. Cela garantit que les données sont chargées dans la base de données en une seule transaction. Notez toutefois que la désactivation de la validation automatique peut entraîner des problèmes de cohérence des données si des erreurs se produisent.

Pour désactiver la validation automatique, définissez le paramètre de validation automatique sur False lors de la création de la session. Ensuite, validez manuellement la session une fois tous les objets ajoutés :

s = Session(autocommit=False)
s.bulk_save_objects(objects)
s.commit()
Copier après la connexion

En utilisant des opérations en masse et en optimisant l'utilisation de la session, vous pouvez améliorer considérablement les performances de vos applications SQLAlchemy ORM pour les tâches d'insertion de données en masse.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal