DSE là một cách đơn giản và thô không thực hiện truy vấn SQL trong trình tự, nhưng giá trị bộ nhớ đệm cho đến khi một giá trị tối đa nhất định đã được gặp và sau đó thực hiện chúng bằng cách sử dụng executemany-phương pháp. Kết quả có thể tăng tốc độ rất lớn.
DSE chỉ được thử nghiệm trên SQLite3 nhưng dự định để sử dụng trong django là tốt.
sử dụng Ví dụ:
sqlite3 nhập # cho mục đích thử nghiệm
từ DSE nhập DelayedSqlExecutor
conn = sqlite3.connect (': bộ nhớ:')
con trỏ = conn.cursor ()
cursor.execute ('tạo bảng fileData (id INTEGER PRIMARY KEY, filepath TEXT, tên tập tin văn bản, filesize INTEGER)')
d = DelayedSqlExecutor (con trỏ, paramtoken = '') # bằng cách sử dụng? paramtoken đây để sqlite3. Để trống và it`ll sử dụng% s như hỗ trợ của Django vv
d.addObject ('fileData', ('id', 'filepath', 'filename', 'filesize'))
cho tôi trong khoảng (0, 999):
& Nbsp; & nbsp; & nbsp; # Thêm một số dữ liệu giả. Chú ý sự vắng mặt của id-field. Điều này sẽ kích hoạt chèn.
& Nbsp; & nbsp; & nbsp; #Adding Id trường sẽ gây ra một bản cập nhật cho dữ liệu chưa có trong db
& Nbsp; & nbsp; & nbsp; d.addItem ('fileData', {'filepath': '/ tmp /', 'filename': 'test% s.txt'% i, 'filesize': i})
# No SQL đã được thực hiện chưa, giới hạn mặc định là 1.000 mặt hàng
# Thêm một mặt hàng khác sẽ kích hoạt thực thi SQLs và đặt lại d-dụ
d.addItem ('fileData', {'filepath': '/ tmp /', 'filename': 'test% s.txt'% i, 'filesize': i})
# Thêm một số hồ sơ để cập nhật
d.addItem ('fileData', {'id': 1, 'filepath': '/ tmp /', 'filename': 'testmore% s.txt'% i, 'filesize': 100})
# Gọi gần sẽ thực hiện bất kỳ SQLs còn lại
d.close ()
# Bạn có thể được yêu cầu để gọi cam kết về kết trỏ đến cam kết dữ liệu. Phụ thuộc vào cách bạn thiết lập con trỏ / kết nối
là gì mới trong phiên bản này:.
- tương thích ngược với django 1.3 .x. Nhờ John Phun một này.
là gì mới trong phiên bản 3.2.0:
- Patch từ andornaut@gmail.com để tương thích với Django 1.4.0. Patch từ Herve Cauwelier để cung cấp hỗ trợ cho các mô hình với các lĩnh vực chính phi autokey.
là gì mới trong phiên bản 3.1.0:
- Patch từ rassminus; Tạo sql thay đổi để trích dẫn tất cả các tài liệu tham khảo cho các tên bảng và cột.
là gì mới trong phiên bản 3.0.0 Beta 2:
- Cố định một vài điều báo cáo của Fido Garcia .
là gì mới trong phiên bản 3.0.0 Beta 1:
- Thay đổi cú pháp đó là không tương thích ngược , do đó một phiên bản sưng. Điều đó và các phương pháp bulk_update đẹp.
- Các tiện ích và thực hiện các phương pháp đã được gỡ bỏ.
- mô hình Patched bây giờ có một tính chất gọi là trì hoãn thay vì DSE. Bạn cũng có thể vá mô hình cụ thể (mới trong 2.1.0).
- Để chèn một model.delayed.insert gọi mục (giá trị)
- Để cập nhật một model.delayed.update gọi mục (giá trị)
- Để xóa một model.delayed.delete gọi mục (id)
- Nếu bạn phải cập nhật một tập hợp dữ liệu khổng lồ nơi các giá trị cho các lĩnh vực được giới hạn, bạn có thể sử dụng các model.delayed.bulk_update mới (giá trị), cho siêu dữ liệu ví dụ từ các bức ảnh hoặc các file nhạc. Nhờ Cal Leeming [Đơn giản Media Ltd] cho nguồn cảm hứng về một điều này:-). Để biết thêm thông nhìn xa hơn xuống cho một hướng đầy đủ hơn về những gì happends đằng sau hậu trường.
là gì mới trong phiên bản 2.1.0:
- Thay đổi nhỏ; dse.patch_models bây giờ có thể có một danh sách tùy chọn của các mô hình để vá, như vậy dse.patch_models (specific_models = [User, Comment]).
là gì mới trong phiên bản 2.0.0:.
- Cập nhật tài liệu và các ví dụ
là gì mới trong phiên bản 2.0.0 RC1:
- Không có sự thay đổi trong mã, bây giờ phát hành bằng cách sử dụng Giấy phép BSD sửa đổi để phù hợp hơn với Django sử dụng giấy phép.
là gì mới trong phiên bản 1.0.2 / 2.0.0 Beta 9:
- Added FileExport-class để dễ dàng gỡ lỗi những gì được xử lý trong quá trình thử nghiệm. Viết SQL-dữ liệu vào tập tin. Xem nguồn / TestSuite để sử dụng.
Yêu cầu :
- Python
Bình luận không