Django querysets are holgazán. Eso significa que una consulta golpeará la base de datos solo cuando específicamente solicite el resultado.
De modo que hasta que imprima o realmente use el resultado de una consulta, puede filtrar aún más sin acceso a la base de datos.
Como puede ver a continuación, su código solo ejecuta una consulta SQL para obtener solo los últimos 10 elementos.
In [19]: import logging
In [20]: l = logging.getLogger('django.db.backends')
In [21]: l.setLevel(logging.DEBUG)
In [22]: l.addHandler(logging.StreamHandler())
In [23]: User.objects.all().order_by('-id')[:10]
(0.000) SELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" ORDER BY "auth_user"."id" DESC LIMIT 10; args=()
Out[23]: [<User: hamdi>]
https://docs.djangoproject.com/en/dev/topics/db/queries/#limiting-querysets –
Derecha. Me perdí esto en alguna parte. – krzyhub