DSE è un modo semplice e banale di non esecuzione di query SQL in sequenza, ma i valori di cache fino a un dato valore massimo è stato raggiunto e quindi eseguire utilizzando il executemany-metodo. Il risultato può essere enormi guadagni di velocità.
DSE è stato testato solo su SQLite3, ma destinato ad essere utilizzato in Django pure.
Esempio di utilizzo:
importazione sqlite3 # a scopo di test
dal DSE import DelayedSqlExecutor
conn = sqlite3.connect (': memoria:')
cursore = conn.cursor ()
cursor.execute ('create table filedata (id INTEGER PRIMARY KEY, filepath TESTO, filename TESTO, filesize INTEGER)')
d = DelayedSqlExecutor (cursore, paramtoken = '?') # utilizzando? paramtoken qui per sqlite3. Lascia vuoto e `ll utilizzare% s come supporto per Django etc.
d.addObject ('filedata', ('id', 'filepath', 'nome', 'spazio'))
for i in range (0, 999):
& Nbsp; & nbsp; & nbsp; # Aggiunta di alcuni dati fittizi. Si noti l'assenza di id-campo. Ciò attiverà inserti.
& Nbsp; & nbsp; & nbsp; #Adding L'id-campo innescherebbe un aggiornamento per i dati non ancora nel db
& Nbsp; & nbsp; & nbsp; d.addItem ('filedata', {'filepath': '/ tmp /', 'filename': 'test% s.txt'% i, 'spazio': i})
# No SQL è stata ancora eseguita, il limite predefinito è di 1000 articoli
# L'aggiunta di un altro elemento attiverà l'esecuzione di SQLs e ripristinare il d-istanza
d.addItem ('filedata', {'filepath': '/ tmp /', 'filename': 'test% s.txt'% i, 'spazio': i})
# Aggiunta di alcuni record per aggiornare
d.addItem ('filedata', {'id': 1, 'filepath': '/ tmp /', 'filename': 'testmore% s.txt'% i, 'spazio': 100})
# Chiamando vicino eseguirà alcun SQLs rimanenti
d.close ()
# Vi potrebbe essere richiesto di chiamare commettere sul cursore a commettere i dati. Dipende da come si imposta il cursore / collegamento
Cosa c'è di nuovo in questa versione:.
- compatibilità con Django 1.3 .x. Grazie a John Spray per questo.
Cosa c'è di nuovo nella versione 3.2.0:
- Patch dal andornaut@gmail.com compatibilità con Django 1.4.0. Patch da Herve Cauwelier per fornire il supporto per i modelli con campi primari non di tasto.
Cosa c'è di nuovo nella versione 3.1.0:
- Patch da rassminus; Creazione sql Cambiato per citare tutti i riferimenti al nome della tabella e di colonna etichette.
Cosa c'è di nuovo in versione 3.0.0 Beta 2:
- Corretto un paio di cose riportate da Fido Garcia .
Cosa c'è di nuovo in versione 3.0.0 Beta 1:
- Variazioni sintassi che non è compatibile , quindi una versione urto. Questo, e il metodo bulk_update bello.
- Il componente aggiuntivo ed eseguire i metodi sono stati rimossi.
- modelli Patched ora hanno una proprietà chiamata ritardata invece di DSE. È inoltre possibile assegnare modelli specifici (nuovi in 2.1.0).
- Per inserire un model.delayed.insert chiamata voce (valori)
- Per aggiornare un model.delayed.update chiamata voce (valori)
- Per eliminare un model.delayed.delete chiamata voce (id)
- Se si deve aggiornare un enorme insieme di dati in cui i valori dei campi sono limitati è possibile utilizzare la nuova model.delayed.bulk_update (valori), per esempio, i metadati di foto o file musicali. Grazie a Cal Leeming [Semplicità Media Ltd] per l'ispirazione in questo:-). Per maggiori informazioni guardare più in basso per una guida più completa su cosa accade dietro le quinte.
Cosa c'è di nuovo nella versione 2.1.0:
- Piccolo cambiamento; dse.patch_models possono ora prendere una lista di modelli di patch, in questo modo dse.patch_models (specific_models = [utente, Commento]).
Cosa c'è di nuovo nella versione 2.0.0:.
- docs ed esempi aggiornati
Cosa c'è di nuovo in versione 2.0.0 RC1:
- Nessun cambiamento nel codice, ora pubblicato con il licenza BSD modificata per essere più compatibile con Django uso licenza.
Cosa c'è di nuovo in versione 1.0.2 / 2.0.0 Beta 9:
- Aggiunto FileExport-class per facilitare il debug ciò che viene elaborato durante i test. Scrive SQL-dati di file. Vedere source / testsuite per l'utilizzo.
Requisiti :
- Python
I commenti non trovato