DSE jest prosty i surowy sposób nie wykonywania zapytań SQL w kolejności, ale wartości buforowania, aż dana wartość max został spełniony, a następnie wykonać je za pomocą executemany-metody. Wynik może być ogromne zyski prędkości.
DSE był testowany tylko na SQLite3, ale przeznaczony do stosowania w django, jak również.
Przykład użycia:
import sqlite3 # dla celów testowych
z DSE importu DelayedSqlExecutor
conn = sqlite3.connect (': pamięci: ")
kursor = conn.cursor ()
cursor.execute ('create table filedata (id INTEGER PRIMARY KEY, filepath TEKST, TEKST nazwa pliku, rozmiar pliku INTEGER) ")
d = DelayedSqlExecutor (kursor, paramtoken = "?") # użyciu? paramtoken tutaj sqlite3. Pozostaw to pole puste, a Ja `ll użyć% s jako wsparcie przez Django itp
d.addObject ("filedata", ("id", "filepath", "nazwa pliku", "rozmiar pliku"))
dla i w przedziale (0, 999):
& Nbsp; & nbsp; & nbsp; # Dodanie niektóre dane fikcyjne. Zwróć uwagę na nieobecność id-polu. Pociągnie to za sobą wkładki.
& Nbsp; & nbsp; & nbsp; #Adding ID-pole wymusiłyby aktualizacji dla danych nie jest jeszcze w db
& Nbsp; & nbsp; & nbsp; d.addItem ("filedata '{' filepath": "/ tmp / ',' nazwa pliku ':' Test% s.txt"% i "rozmiar pliku": i})
# Nie SQL została jeszcze wykonana, domyślny limit to 1000 szt
# Dodanie kolejnego elementu spowoduje wykonanie zapytania SQL i zresetować d-instancji
d.addItem ("filedata '{' filepath": "/ tmp / ',' nazwa pliku ':' Test% s.txt"% i "rozmiar pliku": i})
# Dodawanie kilka rekordów do aktualizacji
d.addItem ("filedata", {"id": 1, "filepath": "/ tmp / ',' nazwa pliku ':' testmore% s.txt"% i "rozmiar pliku": 100})
# Dzwoniąc blisko wykona wszystkie pozostałe zapytania SQL
d.close ()
# Może być konieczne, aby zadzwonić popełnienia na kursor, aby zatwierdzić dane. Zależy jak skonfigurować kursora / połączenia
Co nowego w tym wydaniu:.
- Kompatybilność wsteczna z Django 1.3 .x. Dzięki Jana Spray do tego.
Co nowego w wersji 3.2.0:
- lej z andornaut@gmail.com być zgodne z Django 1.4.0. Łatka Herve Cauwelier w celu zapewnienia wsparcia dla modeli z nie-Autokey pól podstawowych.
Co nowego w wersji 3.1.0:
- lej z rassminus; Zmieniono tworzenie sql zacytować wszystkie odniesienia do nazwy tabeli i kolumn etykiet.
Co nowego w wersji 3.0.0 Beta 2:
- Poprawiono kilka rzeczy, zgłaszane przez Fido Garcia .
Co nowego w wersji 3.0.0 Beta 1:
- Zmiany w składni, który nie jest kompatybilny wstecz , więc wersja wpadać. To i miły sposób bulk_update.
- dodatek i wykonywać metody zostały usunięte.
- poprawione modele mają teraz właściwość o nazwie opóźnione zamiast DSE. Możesz też załatać konkretnych modeli (nowe w 2.1.0).
- Aby wstawić model.delayed.insert połączenia pkt (wartości),
- Aby zaktualizować model.delayed.update połączenia pkt (wartości),
- Aby usunąć model.delayed.delete połączenia element (id)
- Jeśli masz do aktualizacji ogromny zestaw danych, w którym wartości dla pól są ograniczone można korzystać z nowej model.delayed.bulk_update (wartości), na przykład metadanych z zdjęć lub plików muzycznych. Dzięki Cal Leeming [Prostota Media Ltd] inspiracji na tym:-). Aby uzyskać więcej informacji szukać dalej w dół do pełniejszego solucji na co happends za kulisami.
Co nowego w wersji 2.1.0:
- Małe zmiany; dse.patch_models mogą teraz opcjonalnie listę modeli do poprawki, tak jak dse.patch_models (specific_models = [User, Komentarz]).
Co nowego w wersji 2.0.0:.
- Zaktualizowane dokumenty i przykłady
Co nowego w wersji 2.0.0 RC1:
- Brak zmian w kodzie, teraz zwolniony za pomocą zmodyfikowana BSD będzie bardziej kompatybilny z Django wykorzystania licencji.
Co nowego w wersji 1.0.2 / 2.0.0 Beta 9:
- Dodane FileExport klasy w celu ułatwienia debugowania, co jest przetwarzane w trakcie testów. Zapisuje dane do SQL-pliku. Zobacz źródło / testsuite do użytku.
Wymagania :
- Python
Komentarze nie znaleziono