dse es una manera simple y cruda de no ejecutar consultas SQL en la secuencia, pero los valores de caché hasta un valor máximo dado se ha cumplido y luego ejecutarlos utilizando el método executemany. El resultado puede ser enormes ganancias de velocidad.
dse sólo se probó en SQLite3 pero diseñado para su uso en django también.
Ejemplo de uso:
sqlite3 importada # para propósitos de prueba
desde dse DelayedSqlExecutor importación
conn = sqlite3.connect (': memoria:')
cursor = conn.cursor ()
cursor.execute ('create table filedata (id INTEGER PRIMARY KEY, TEXTO filepath, texto Nombre de archivo, tamaño de archivo INTEGER)')
d = DelayedSqlExecutor (cursor, paramtoken = '?') # con el? paramtoken aquí para sqlite3. Déjelo en blanco y ll del `usar% s como el apoyo por Django etc.
d.addObject ('filedata', ('id', 'ruta de archivo "," nombre de archivo "," tamaño del archivo "))
for i in range (0, 999):
& Nbsp; & nbsp; & nbsp; # Añadiendo algunos datos ficticios. Nótese la ausencia del-campo id. Esto hará que las inserciones.
& Nbsp; & nbsp; & nbsp; #Adding El campo id desencadenaría una actualización para los datos aún no están en el PP
& Nbsp; & nbsp; & nbsp; d.addItem ('filedata', {'filepath': '/ tmp /', 'nombre de archivo': 'test% s.txt'% i, 'tamaño de archivo': i})
# No SQL se ha ejecutado todavía, el límite predeterminado es de 1000 artículos
# Cómo agregar otro elemento activará la ejecución de SQLs y restablecer el d-instancia
d.addItem ('filedata', {'filepath': '/ tmp /', 'nombre de archivo': 'test% s.txt'% i, 'tamaño de archivo': i})
# Agregar algunos registros para actualizar
d.addItem ('filedata', {"id": 1, 'filepath': '/ tmp /', 'nombre de archivo': 'testmore% s.txt'% i, 'tamaño de archivo ": 100})
# Llamando cerca ejecutará ningún SQLs restantes
d.close ()
# Es posible que tenga que llamar a cometer en el cursor para cometer los datos. Depende de cómo se configura el cursor / conexión
¿Qué hay de nuevo en esta versión:.
- la compatibilidad hacia atrás con django 1.3 .x. Gracias a John spray para éste.
¿Cuál es nuevo en la versión 3.2.0:
- Patch de andornaut@gmail.com sea compatible con Django 1.4.0. Parche de Herve Cauwelier para proporcionar apoyo a los modelos con campos primarios no Autokey.
¿Qué hay de nuevo en la versión 3.1.0:
- Patch de rassminus; Creación sql Cambiado citar todas las referencias a los nombres de columna y tabla de etiquetas.
¿Qué hay de nuevo en la versión 3.0.0 Beta 2:
- Fijo algunas cosas reportados por Fido García .
¿Cuál es nuevo en la versión 3.0.0 Beta 1:
- Los cambios en la sintaxis que no es compatible con versiones anteriores , por lo tanto, una versión bache. Eso y el método bulk_update agradable.
- El complemento y ejecutar métodos se han eliminado.
- modelos parcheado tienen ahora una propiedad llamada retrasa en lugar de dse. También puede parchear modelos específicos (nuevos en 2.1.0).
- Para insertar una llamada model.delayed.insert artículo (valores)
- Para actualizar una llamada model.delayed.update artículo (valores)
- Para eliminar una llamada model.delayed.delete artículo (id)
- Si tiene que actualizar un enorme conjunto de datos donde los valores de los campos se limitan puede utilizar la nueva model.delayed.bulk_update (valores), por ejemplo, los metadatos de fotos o archivos de música. Gracias a Cal Leeming [Simplicidad Media Ltd] en busca de inspiración en esta:-). Para más información ver más abajo para un tutorial más completo en lo que happends detrás de las escenas.
¿Cuál es nuevo en la versión 2.1.0:
- Pequeño cambio; dse.patch_models ahora pueden tener una lista opcional de modelos para parchear, como así dse.patch_models (specific_models = [Usuario, Comentario]).
¿Qué hay de nuevo en la versión 2.0.0:.
- docs y ejemplos Actualizado
¿Qué hay de nuevo en la versión 2.0.0 RC1:
- No hay cambios en el código, ahora liberado mediante el licencia BSD modificada para ser más compatible con Django uso de licencia.
¿Qué hay de nuevo en la versión 1.0.2 / 2.0.0 Beta 9:
- Agregado FileExport clase para facilitar la depuración de lo que se procesa durante la prueba. Escribe-datos SQL a archivo. Ver fuente / banco de pruebas para el uso.
Requisitos :
- Python
Comentarios que no se encuentran