La tabla en cuestión contiene aproximadamente diez millones de filas.
for event in Event.objects.all():
print event
Esto hace que el uso de la memoria aumente constantemente a 4 GB aproximadamente, momento en el que las filas se imprimen rápidamente. La larga demora antes de que se imprimiera la primera fila me sorprendió: esperaba que se imprimiera casi instantáneamente.
También probé Event.objects.iterator()
que se comportó de la misma manera.
No entiendo qué está cargando Django en la memoria o por qué está haciendo esto. Esperaba que Django repitiera los resultados a nivel de la base de datos, lo que significaría que los resultados se imprimirían aproximadamente a una velocidad constante (en lugar de todos a la vez después de una larga espera).
¿Qué he entendido mal?
(No sé si es relevante, pero estoy usando PostgreSQL).