dse on yksinkertainen ja raakaöljyn tapa ei täytäntöönpanovaltion SQL-kyselyjä järjestyksessä, mutta välimuistin arvoja kunnes tietty max arvo on saavutettu ja suorita niitä käyttämällä executemany-menetelmällä. Tuloksena voi olla valtava nopeus voittoja.
DSE oli testataan vain sqlite3 mutta jotka on tarkoitettu käytettäviksi Django samoin.
Esimerkki käytöstä:
tuonti sqlite3 # testausta varten
alkaen DSE tuonti DelayedSqlExecutor
Conn = sqlite3.connect (': muisti:')
kohdistin = conn.cursor ()
cursor.execute ("luo pöytä filedata (id INTEGER PRIMARY KEY, filepath TEKSTI, tiedostonimi TEKSTI, filesize kokonaisluku) ')
d = DelayedSqlExecutor (kohdistin, paramtoken = '?') # käyttäen? paramtoken täällä sqlite3. Jätä se tyhjäksi ja it`ll käyttää% s tukea Django jne
d.addObject (filedata ', (' id ',' filepath ',' tiedostonimi ',' filesize '))
i kantaman (0, 999):
& Nbsp; & nbsp; & nbsp; # Lisäämällä joitakin valedataa. Huomaa ettei id-kenttä. Tämä laukaisee lisää.
& Nbsp; & nbsp; & nbsp; #Adding Id-kenttä johtaisi päivityksen tietoja ei vielä db
& Nbsp; & nbsp; & nbsp; d.addItem (filedata ", {" filepath ':' / tmp / ',' filename ':' testi% s.txt '% i,' Tiedostokoko ': i})
# Ei SQL on suoritettu vielä, oletuksena raja on 1000 kohdetta
# Lisääminen toisen kohteen laukaisee toteuttamista SQLs ja nollata d-oikeusasteessa
d.addItem (filedata ", {" filepath ':' / tmp / ',' filename ':' testi% s.txt '% i,' Tiedostokoko ': i})
# Lisääminen joidenkin tietojen päivittämiseksi
d.addItem (filedata ", {" id ": 1," filepath ':' / tmp / ',' filename ':' testmore% s.txt '% i,' Tiedostokoko ': 100})
# Soittamalla lähellä tulee suorittaa kaikki jäljellä SQLs
d.close ()
# Saatat joutua soittamaan syyllistyvät kursori sitoutumaan tietoja. Riippuu kuinka asetat kohdistimen / yhteys.
Mitä uutta strong> tässä julkaisussa:
- Taaksepäin yhteensopivuus Django 1.3 .x. Kiitos John Spray tämä.
Mitä uutta strong> versiossa 3.2.0:
- korjaustiedostoon andornaut@gmail.com yhteensopiviksi kanssa Django 1.4.0. Patch Hervé Cauwelier tukemaan malleja ei-Autoavainjärjestelmä ensisijaiset kentät.
Mitä uutta strong> versiossa 3.1.0:
- korjaustiedostoon rassminus; Muuttunut sql luominen lainata kaikki viittaukset taulukon nimi ja sarakkeen tarrat.
Mitä uutta strong> versiossa 3.0.0 Beta 2:
- Kiinteä muutamia asioita ilmoittama Fido Garcia .
Mitä uutta strong> versiossa 3.0.0 Beta 1:
- Muutokset syntaksin, joka ei ole taaksepäin yhteensopiva Siksi versio kolahtaa. Se ja mukava bulk_update menetelmällä.
- add ja toteuttaa menetelmät on poistettu.
- paikattava malleissa on nyt ominaisuus nimeltään viivästynyt sijasta DSE. Voit myös paikata tiettyjä malleja (uusi 2.1.0).
- Jos haluat lisätä kohteen puhelu model.delayed.insert (arvot)
- Jos haluat päivittää kohteen puhelu model.delayed.update (arvot)
- Jos haluat poistaa kohteen puhelu model.delayed.delete (id)
- Jos joudut päivittämään valtava tietokokonaisuus, jossa kenttien arvot ovat rajalliset voit käyttää uusia model.delayed.bulk_update (arvot), esimerkiksi metatiedot valokuvia tai musiikkitiedostoja. Kiitos Cal Leeming [Yksinkertaisuus Media Oy] inspiraatiota tässä yksi:-). Saat lisätietoja katso alempana täydellisempi läpivalaisu mitä happends kulissien takana.
Mitä uutta strong> versiossa 2.1.0:
- Pieni muutos; dse.patch_models voi nyt ottaa vapaaehtoinen listan malleista paikata, kuten niin dse.patch_models (specific_models = [User, kommentti]).
Mitä uutta strong> versiossa 2.0.0:
- Päivitetty docs ja esimerkkejä.
Mitä uutta strong> versiossa 2.0.0 RC1:
- Ei muutosta koodin, nyt luovuttaa käyttöön muutettu BSD-lisenssi olevan yhteensopiva Django käyttöoikeustietoasiakirjoista.
Mitä uutta strong> versiossa 1.0.2 / 2.0.0 Beta 9:
- Lisätty FileExport luokan helpottaa virheenkorjaus mitä käsitellään testauksen aikana. Kirjoittaa SQL-tietoja tiedostoon. Katso lähde / testsuite käyttötietojen.
Vaatimukset :
- Python
Kommentteja ei löytynyt