dse est un moyen simple et brut de ne pas exécuter des requêtes SQL dans l'ordre, mais les valeurs de mise en cache jusqu'à ce qu'une valeur max donné a été atteint, puis les exécuter en utilisant la méthode executemany. Le résultat peut être d'énormes gains de vitesse.
dse n'a été testé que sur SQLite3 mais destinés à une utilisation dans django ainsi.
Exemple d'utilisation:
sqlite3 d'importation # fins de test
de dse importation DelayedSqlExecutor
conn = sqlite3.connect (': mémoire:')
= conn.cursor curseur ()
cursor.execute ('create table filedata (id INTEGER PRIMARY KEY, filepath TEXT, fichier TEXT, taille du fichier entier)')
d = DelayedSqlExecutor (curseur, paramtoken = '?') # utilisant le? paramtoken ici pour sqlite3. Laissez ce champ vide et `ll utiliser% s comme support par Django, etc.
d.addObject ('filedata', ('id', 'chemin d'accès', 'filename', 'taille du fichier'))
for i in range (0, 999):
& Nbsp; & nbsp; & nbsp; # Ajoutant quelques données factices. Notez l'absence du champ id. Cela déclenchera inserts.
& Nbsp; & nbsp; & nbsp; #Adding Le-champ id déclencherait une mise à jour des données pas encore dans la db
& Nbsp; & nbsp; & nbsp; d.addItem ('filedata', {'filepath »:« / tmp /', 'filename': 'test s.txt%'% i, 'taille du fichier': i})
# Pas de SQL a encore été exécuté, la limite par défaut est de 1000 articles
# Ajout d'un autre élément va déclencher l'exécution de requêtes SQL et réinitialiser le d-exemple
d.addItem ('filedata', {'filepath »:« / tmp /', 'filename': 'test s.txt%'% i, 'taille du fichier': i})
# Ajout de certains dossiers de mise à jour
d.addItem ('filedata', {: «chemin d'accès» 1: «/ tmp / ',' filename ':' id '' testmore% s.txt '% i,' taille du fichier": 100})
# Appelant close exécutera tout SQLs restants
d.close ()
# Vous pourriez être tenu de citer commis sur le curseur pour valider les données. Dépend de la façon dont vous configurez le curseur / connexion
Ce qui est nouveau dans cette version:.
- Rétro-compatibilité avec Django 1.3 .x. Merci à John Spray celui-ci.
Quoi de neuf dans la version 3.2.0:
- Patch andornaut@gmail.com pour être compatible avec Django 1.4.0. Patch de Herve Cauwelier de fournir un soutien pour les modèles avec des champs primaires non autokey.
Ce qui est nouveau dans la version 3.1.0:
- Patch rassminus; La création d'sql changé pour citer toutes les références aux noms de table et de colonne étiquettes.
Ce qui est nouveau dans la version 3.0.0 Beta 2:
- Correction de quelques choses rapportées par Fido Garcia .
Quoi de neuf dans la version 3.0.0 Beta 1:
- Les changements dans la syntaxe qui ne est pas compatible donc une version bosse. Ce et la méthode de bulk_update agréable.
- L'add et exécuter des méthodes ont été supprimés.
- modèles corrigés ont maintenant une propriété appelée retardé lieu de dse. Vous pouvez également patcher modèles spécifiques (nouvelles en 2.1.0).
- Pour insérer un élément model.delayed.insert d'appel (valeurs)
- Pour mettre à jour un élément model.delayed.update d'appel (valeurs)
- Pour supprimer un élément de model.delayed.delete appel (id)
- Si vous devez mettre à jour un vaste ensemble de données où les valeurs des champs sont limités, vous pouvez utiliser la nouvelle model.delayed.bulk_update (valeurs), par exemple des métadonnées à partir de photos ou de fichiers de musique. Merci à Cal Leeming [Simplicité Media Ltd] pour l'inspiration sur celui-ci:-). Pour plus d'informations regardez plus bas pour une visite virtuelle plus complète sur ce happends les coulisses.
Quoi de neuf dans la version 2.1.0:
- Petit changement; dse.patch_models peuvent maintenant prendre une liste facultative de modèles de patcher, comme tant dse.patch_models (specific_models = [utilisateur, commentaire]).
Ce qui est nouveau dans la version 2.0.0:.
- docs et des exemples à jour
Ce qui est nouveau dans la version 2.0.0 RC1:
- Pas de changement dans le code, maintenant publié en utilisant la licence BSD modifiée pour être plus compatible avec une utilisation de licence Django.
Ce qui est nouveau dans la version 1.0.2 / 2.0.0 Beta 9:
- Ajouté FileExport classe pour faciliter le débogage ce qui est traitée au cours des essais. Écrit SQL-données dans le fichier. Voir la source / suite de tests pour l'utilisation.
Exigences :
- Python
Commentaires non trouvées