Mysql
 sql >> Base de données >  >> RDS >> Mysql

Meilleure pratique de bulk_create pour les enregistrements volumineux

Bien que bulk_create soit utile pour enregistrer un petit nombre d'enregistrements lors du traitement d'un formulaire HTML, il n'est pas idéal pour enregistrer des milliers d'enregistrements. Comme vous l'avez déjà découvert, il est lent car il nécessite beaucoup de mémoire et envoie une très grande requête à la base de données. Fortunatley CHARGER LES DONNÉES DANS LE FICHIER vient à la rescousse.

Nous pouvons produire un fichier similaire à ce qui est produit en utilisant csv writer l'exemple suivant provient de la documentation.

import csv
    with open('some.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(someiterable)

Enfin, comme vous l'avez déjà découvert, l'option LOCAL pour CHARGER LES DONNÉES .. peut parfois être utilisée par commodité.

Lorsque vous utilisez cette option, le fichier n'a pas besoin d'être transféré manuellement sur le serveur. Vous pouvez générer le fichier CSV côté client et l'option locale obligera le client mysql à transférer automatiquement le fichier sur le serveur.