DSE является простой и грубый способ не выполнения запросов SQL в последовательности, но значения кэширования, пока при максимальном значение не были выполнены, а затем выполнить их с помощью executemany-метод. Результат может быть огромные выигрыш в скорости.
DSE был протестирован только на SQLite3 но предназначены для использования в Django, а также.
Пример использования:
импорт sqlite3 # для тестирования
от DSE DelayedSqlExecutor импорта
Коннектикут = sqlite3.connect (': память:')
курсор = conn.cursor ()
cursor.execute ('создать таблицу FILEDATA (ID INTEGER PRIMARY KEY, FilePath ТЕКСТ, ТЕКСТ файла, размер файла INTEGER)')
d = DelayedSqlExecutor (курсор, paramtoken = '?') # с помощью? paramtoken здесь sqlite3. Оставьте это поле пустым, и ll `использовать% S в качестве поддержки Джанго и т.д.
d.addObject ('FileData "(" ID "," FilePath', 'имя файла', 'Размер файла "))
для I в диапазоне (0, 999):
& NBSP; & NBSP; & NBSP; # Добавив некоторые фиктивные данные. Обратите внимание на отсутствие ID-поля. Это вызовет вставки.
& NBSP; & NBSP; & NBSP; #Adding ID-поле будет инициировать обновление для данных еще не в БД
& NBSP; & NBSP; & NBSP; d.addItem ('FileData ", {' путь_к_файлу ':' / TMP / ',' имя файла ':' тест% s.txt '% я,' Размер файла": я})
# Нет SQL не был выполнен еще, предел по умолчанию 1000 пунктов
# Добавление еще один пункт вызовет выполнение SQLs и сброса D-экземпляр
d.addItem ('FileData ", {' путь_к_файлу ':' / TMP / ',' имя файла ':' тест% s.txt '% я,' Размер файла": я})
# Добавление несколько записей, чтобы обновить
d.addItem ('FileData ", {' ID ': 1,' путь_к_файлу ':' / TMP / ',' имя файла ':' testmore% s.txt '% я,' Размер файла": 100})
# Вызов близко будет выполнять все оставшиеся SQLs
d.close ()
# Вы можете быть обязаны называть совершить над курсором к совершению данных. Зависит от того, как вы создали курсор / связь
Что нового В этом выпуске:.
- Обратная совместимость с Django 1.3 .Икс. Благодаря Иоанна Спрей для этого.
Что нового в версии 3.2.0:
- Патч от andornaut@gmail.com, чтобы быть совместимым с Django 1.4.0. Патч от Herve Cauwelier оказывать поддержку для моделей с не-Autokey первичных полей.
Что нового в версии 3.1.0:
- Патч от rassminus; Создание Изменен SQL цитировать все ссылки на имя таблицы и столбцов этикеток.
Что нового в версии 3.0.0 Beta 2:
- Исправлена несколько вещей, о которых сообщают Fido Гарсия .
Что нового в версии 3.0.0 Beta 1:
- Изменения в синтаксисе, который не имеет обратной совместимости Поэтому версия врезаться. Это и приятно метод bulk_update.
- Дополнения и выполнять методы были удалены.
- Пропатченные модели теперь имеют свойство называется задержкой вместо DSE. Вы также можете пропатчить конкретных моделей (новые в 2.1.0).
- Чтобы вставить элемент вызова model.delayed.insert (значения)
- Чтобы обновить пункт вызова model.delayed.update (значения)
- Чтобы удалить элемент вызова model.delayed.delete (ID)
- Если у вас есть, чтобы обновить огромный набор данных, где значения для полей ограничены вы можете использовать новую model.delayed.bulk_update (значения), для метаданных экземпляра из фотографий или музыкальных файлов. Благодаря Cal Лееминг [Простота Media Ltd] для вдохновения на этом :-). Для получения дополнительной информации смотрите далее вниз для более полного руководстве о том, что happends за кулисами.
Что нового в версии 2.1.0:
- Небольшие изменения; Теперь dse.patch_models может занять дополнительный список моделей, чтобы исправить, как и dse.patch_models (specific_models = [Пользователь, Комментарий]).
Что нового в версии 2.0.0:.
- Обновлены документы и примеры
Что нового в версии 2.0.0 RC1:
- Без изменений в коде, в настоящее время выпущен с помощью модифицированный лицензия BSD, чтобы быть более совместимым с Django лицензии использования.
Что нового в версии 1.0.2 / 2.0.0 Beta 9:
- Добавлена FileExport-класса чтобы облегчить отладку, что обрабатывается во время тестирования. Пишет SQL-данные в файл. См источник / Тестов для использования.
Требования
- Python
Комментарии не найдены