DSE is een eenvoudige en ruwe manier van het niet uitvoeren van SQL-query's in de juiste volgorde, maar caching waarden tot een bepaalde maximale waarde is gehaald en vervolgens voeren ze met behulp van de executemany-methode. Het resultaat kan zijn enorme snelheid winsten.
DSE werd alleen getest op SQLite3 maar bedoeld voor gebruik in Django ook.
Voorbeeld van gebruik:
import sqlite3 # voor testdoeleinden
uit dse import DelayedSqlExecutor
conn = sqlite3.connect (': geheugen:')
cursor = conn.cursor ()
cursor.execute ('create table Filedata (id INTEGER PRIMARY KEY, filepath TEKST, bestandsnaam TEKST, bestandsgrootte INTEGER)')
d = DelayedSqlExecutor (cursor, paramtoken = '?') # met behulp van de? paramtoken hier voor sqlite3. Laat het leeg en het `ll gebruiken% s als ondersteuning van Django etc.
d.addObject ('Filedata', ('id', 'filepath', 'bestandsnaam', 'bestandsgrootte'))
voor i in range (0, 999):
& Nbsp; & nbsp; & nbsp; # Het toevoegen van enkele dummy data. Let op de afwezigheid van de id-veld. Dit zal leiden tot inserts.
& Nbsp; & nbsp; & nbsp; #Adding Het id-veld zou nog niet een update voor gegevens triggeren in de db
& Nbsp; & nbsp; & nbsp; d.addItem ('Filedata', {'filepath': '/ tmp /', 'filename' 'test% s.txt'% i, 'bestandsgrootte': i})
# Geen SQL is nog niet uitgevoerd, de standaard limiet is 1000 artikelen
# Ander item toevoegen zal de uitvoering van SQLs triggeren en de d-instantie resetten
d.addItem ('Filedata', {'filepath': '/ tmp /', 'filename' 'test% s.txt'% i, 'bestandsgrootte': i})
# Het toevoegen van een aantal records bij te werken
d.addItem ('Filedata', {"id": 1, 'filepath': '/ tmp /', 'filename': 'testmore% s.txt'% i, 'bestandsgrootte: 100})
# Bellen dicht zullen alle resterende SQLs voeren
d.close ()
# U zou kunnen worden verplicht om te bellen te plegen op de cursor om de gegevens te plegen. Hangt af van hoe je het opzetten van de cursor / aansluiting
Wat is nieuw in deze release:.
- Backwards compatibiliteit met Django 1.3 .x. Met dank aan John Spray voor deze.
Wat is nieuw in versie 3.2.0:
- Het Flard van andornaut@gmail.com om compatibel te zijn met Django 1.4.0. Patch van Herve Cauwelier om ondersteuning te bieden voor de modellen met niet-autokey primaire velden.
Wat is nieuw in versie 3.1.0:
- Patch uit rassminus; Gewijzigde sql creatie om alle verwijzingen naar de tabel naam en kolomlabels citeren.
Wat is nieuw in versie 3.0.0 Beta 2:
- Vast een paar dingen gemeld door Fido Garcia .
Wat is nieuw in versie 3.0.0 Beta 1:
- Wijzigingen in de syntax die niet backwards compatible daarom een versie bump. Dat en de mooie bulk_update methode.
- De add en uit te voeren methoden zijn verwijderd.
- Patched modellen hebben nu een eigenschap genaamd vertraagd in plaats van dse. U kunt ook patchen specifieke modellen (nieuw in 2.1.0).
- Als u een item oproep model.delayed.insert voegen (waarden)
- Als u een item oproep model.delayed.update actualiseren (waarden)
- Als u een item oproep model.delayed.delete (id) te verwijderen
- Als u een enorme dataset waarin de waarden voor de velden zijn beperkt kunt u de nieuwe model.delayed.bulk_update (waarden), bijvoorbeeld metadata van foto's of muziekbestanden gebruiken bij te werken. Dankzij Cal leeming [Eenvoud Media Ltd] om inspiratie op dit ene:-). Voor meer info kijk verder naar beneden voor een meer complete walkthrough over wat happends achter de schermen.
Wat is nieuw in versie 2.1.0:
- Kleine veranderingen; dse.patch_models kunnen nu een optionele lijst met modellen op te lappen, zoals zo dse.patch_models (specific_models = [User, Commentaar]).
Wat is nieuw in versie 2.0.0:.
- Bijgewerkt docs en voorbeelden
Wat is nieuw in versie 2.0.0 RC1:
- Geen verandering in de code, nu vrijgegeven met behulp van de gewijzigde BSD licentie om meer compatibel met Django licentie gebruik.
Wat is nieuw in versie 1.0.2 / 2.0.0 Beta 9:
- Toegevoegde FileExport-klasse te verlichten debuggen wat er wordt verwerkt tijdens het testen. Schrijft SQL-gegevens naar bestand. Zie bron / testsuite voor gebruik.
Eisen
- Python
Reacties niet gevonden