DSE adalah cara sederhana dan kasar tidak mengeksekusi query SQL secara berurutan, tetapi nilai-nilai caching sampai nilai maksimum yang diberikan telah bertemu dan kemudian mengeksekusi mereka menggunakan executemany-metode. Hasilnya dapat keuntungan kecepatan besar.
DSE hanya diuji pada SQLite3 tetapi dimaksudkan untuk digunakan dalam Django juga.
Contoh penggunaan:
impor sqlite3 # untuk tujuan pengujian
dari DSE impor DelayedSqlExecutor
conn = sqlite3.connect (': memori:')
kursor = conn.cursor ()
cursor.execute ('membuat tabel filedata (id INTEGER PRIMARY KEY, filepath TEXT, nama file TEXT, filesize INTEGER)')
d = DelayedSqlExecutor (kursor, paramtoken = '?') # menggunakan? paramtoken sini untuk sqlite3. Biarkan kosong dan `ll menggunakan% s sebagai dukungan oleh Django dll
d.addObject ('filedata', ('id', 'filepath', 'nama file', 'filesize'))
untuk i dalam kisaran (0, 999):
& Nbsp; & nbsp; & nbsp; # Menambahkan beberapa data dummy. Perhatikan adanya id-bidang. Hal ini akan memicu sisipan.
& Nbsp; & nbsp; & nbsp; #Adding Id-bidang akan memicu update untuk data belum db
& Nbsp; & nbsp; & nbsp; d.addItem ('filedata', {'filepath': '/ tmp /', 'nama file': 'test% s.txt'% i, 'filesize': i})
# Tidak ada SQL telah dilaksanakan lagi, batas default adalah 1000 item
# Menambahkan item lain akan memicu eksekusi SQL yang dan ulang d-contoh
d.addItem ('filedata', {'filepath': '/ tmp /', 'nama file': 'test% s.txt'% i, 'filesize': i})
# Menambahkan beberapa catatan untuk memperbarui
d.addItem ('filedata', {"id": 1, "filepath ':' / tmp / ',' nama file ':' testmore% s.txt '% i,' filesize ': 100})
# Memanggil dekat akan mengeksekusi SQL yang tersisa
d.close ()
# Anda mungkin diminta untuk memanggil komit pada kursor untuk melakukan data. Tergantung pada bagaimana Anda mengatur kursor / koneksi
Apa yang baru dalam rilis ini:.
- kompatibilitas Backwards dengan Django 1.3 .x. Terima kasih kepada John Spray untuk yang satu ini.
Apa yang baru dalam versi 3.2.0:
- Patch dari andornaut@gmail.com agar kompatibel dengan Django 1.4.0. Patch dari Herve Cauwelier untuk memberikan dukungan untuk model dengan bidang utama non-autokey.
Apa yang baru dalam versi 3.1.0:
- Patch dari rassminus; Penciptaan sql Berubah mengutip semua referensi ke nama tabel dan kolom label.
Apa yang baru dalam versi 3.0.0 Beta 2:
- Fixed beberapa hal yang dilaporkan oleh Fido Garcia .
Apa yang baru dalam versi 3.0.0 Beta 1:
- Perubahan sintaks yang tidak kompatibel Oleh karena itu versi benjolan. Itu dan metode bulk_update bagus.
- add dan melaksanakan metode telah dihapus.
- model Patch sekarang memiliki sifat yang disebut tertunda bukan DSE. Anda juga dapat menambal model tertentu (baru di 2.1.0).
- Untuk menyisipkan model.delayed.insert barang panggilan (nilai)
- Untuk memperbarui model.delayed.update barang panggilan (nilai)
- Untuk menghapus barang model.delayed.delete panggilan (id)
- Jika Anda harus memperbarui data set besar di mana nilai-nilai untuk bidang terbatas Anda dapat menggunakan model.delayed.bulk_update baru (nilai), misalnya metadata dari foto atau file musik. Terima kasih kepada Cal Leeming [Kesederhanaan Media Ltd] untuk inspirasi yang satu ini:-). Untuk info lebih lanjut melihat lebih jauh ke bawah untuk penjelasan lebih lengkap tentang apa yang happends belakang layar.
Apa yang baru dalam versi 2.1.0:
- Perubahan kecil; dse.patch_models sekarang dapat mengambil daftar pilihan model untuk menambal, seperti dse.patch_models (specific_models = [Pengguna, Komentar]).
Apa yang baru dalam versi 2.0.0:.
- Diperbarui docs dan contoh
Apa yang baru dalam versi 2.0.0 RC1:
- Tidak ada perubahan dalam kode, sekarang dirilis dengan menggunakan lisensi BSD yang dimodifikasi menjadi lebih kompatibel dengan lisensi menggunakan Django.
Apa yang baru di versi 1.0.2 / 2.0.0 Beta 9:
- Ditambahkan FileExport kelas untuk mempermudah debug apa yang diproses selama pengujian. Menulis SQL-data ke file. Lihat sumber / testsuite untuk penggunaan.
Persyaratan :
- Python
Komentar tidak ditemukan