DSE este un mod simplu și brut de executare nu interogări SQL în ordine, dar valorile memorare în cache până la o valoare maximă dat a fost îndeplinită și apoi executa-le folosind executemany-metoda. Rezultatul poate fi câștiguri uriașe de viteză.
DSE a fost testat doar pe SQLite3 ci destinate utilizării în Django, de asemenea.
Exemplu de utilizare:
SQLite3 import # în scop de testare
de la DSE DelayedSqlExecutor import
Conn = sqlite3.connect (': memorie:')
cursor = conn.cursor ()
cursor.execute ("crea filedata tabel (id INTEGER PRIMARY KEY, filepath TEXT, nume de fișier TEXT, Mărimea fișierului INTEGER)")
d = DelayedSqlExecutor (cursor, paramtoken = '?') # folosind? paramtoken aici pentru SQLite3. Lăsați-l gol și it`ll folosi% s ca ajutor de Django etc.
d.addObject (, ('id' 'filedata "," filepath "," filename "," Mărimea fișierului "))
for i in range (0, 999):
& Nbsp; & nbsp; & nbsp; # Adăugarea unor date fictive. Observați absența id-teren. Acest lucru va declanșa inserții.
& Nbsp; & nbsp; & nbsp; #Adding Id-câmpul ar declanșa o actualizare a datelor care nu sunt încă în PB
& Nbsp; & nbsp; & nbsp; d.addItem ("filedata", {"filepath": "/ tmp /", "filename": "test% s.txt"% i, 'Mărimea fișierului ": i})
# Nu SQL a fost executată încă, limita implicit este de 1000 de articole
# Adăugarea alt element va declanșa executarea SQLs și reseta d-instanță
d.addItem ("filedata", {"filepath": "/ tmp /", "filename": "test% s.txt"% i, 'Mărimea fișierului ": i})
# Adăugarea unor înregistrări pentru a actualiza
d.addItem (, {"id": 1, "filepath": "/ tmp /", "filename": "testmore% s.txt"% i, 'Mărimea fișierului ": 100}" filedata ")
# Asteptare aproape va executa orice SQLs rămase
d.close ()
# S-ar putea fi necesare pentru a apela angajeze pe cursorul pentru a comite datele. Depinde de modul în care configurați cursorul / conexiune
Ce este nou în această versiune:.
- compatibilitate cu Django 1.3 .x. Vă mulțumim pentru John Spray pentru asta.
Ce este nou în versiunea 3.2.0:
- Patch de la andornaut@gmail.com a fi compatibile cu Django 1.4.0. Patch de la Herve Cauwelier pentru a oferi sprijin pentru modelele cu câmpuri primar non-autokey.
Ce este nou în versiunea 3.1.0:
- Patch de la rassminus; Creare SQL schimbat pentru a cita toate referirile la denumirea de masă și de coloană etichete.
Ce este nou în versiunea 3.0.0 Beta 2:
- fix câteva lucruri raportate de Fido Garcia .
Ce este nou în versiunea 3.0.0 Beta 1:
- Modificări în sintaxă care nu este compatibil , prin urmare, o versiune cucui. Asta și metoda bulk_update frumos.
- Add și executa metodele au fost eliminate.
- modele patch-uri au acum o proprietate numita întârziat în loc de DSE. Puteți, de asemenea, patch-uri modele specifice (noi in 2.1.0).
- Pentru a introduce un model.delayed.insert apel element (valorile)
- Pentru a actualiza un model.delayed.update apel element (valorile)
- Pentru a șterge un model.delayed.delete apel articol (id)
- Dacă trebuie să actualizați un set de date foarte mare în cazul în care valorile pentru câmpurile sunt limitate, puteți utiliza noul model.delayed.bulk_update (valori), de exemplu metadate din fotografii sau fișiere de muzică. Datorită Cal Leeming [Simplitatea Media Ltd] pentru inspirație pe acesta:-). Pentru mai multe informatii privi mai jos pentru o prezentare mai completă asupra a ceea ce happends spatele scenei.
Ce este nou în versiunea 2.1.0:
- schimbare mici; dse.patch_models poate lua acum o listă opțională de modele de patch-uri, cum ar fi atât dse.patch_models (specific_models = [de utilizare, comentariu]).
Ce este nou în versiunea 2.0.0:.
- documente actualizate și exemple
Ce este nou în versiunea 2.0.0 RC1:
- Nicio schimbare in cod, acum a lansat folosind licență BSD modificate pentru a fi mai compatibil cu Django utilizare licență.
Ce este nou în versiunea 1.0.2 / 2.0.0 Beta 9:
- Adăugat FileExport de clasă pentru a ușura depanare ceea ce este procesat în timpul testării. Scrie SQL-date la dosar. Vezi sursă / TestSuite pentru utilizare.
Cerințe :
- Python
Comentariile nu a fost găsit