From a5af81f93fdf79a99d59a7cabd14ce58266d1d10 Mon Sep 17 00:00:00 2001 From: Luke Plant Date: Tue, 22 Dec 2009 17:32:30 +0000 Subject: [PATCH] Improved documentation of when QuerySet.exists() and .count() are a genuine optimization. Also fixed a typo. git-svn-id: http://code.djangoproject.com/svn/django/trunk@11960 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- docs/ref/models/querysets.txt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 45f1c3161b..fe94aa006f 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -1037,7 +1037,8 @@ Example:: ``count()`` performs a ``SELECT COUNT(*)`` behind the scenes, so you should always use ``count()`` rather than loading all of the record into Python -objects and calling ``len()`` on the result. +objects and calling ``len()`` on the result (unless you need to load the +objects into memory anyway, in which case ``len()`` will be faster). Depending on which database you're using (e.g. PostgreSQL vs. MySQL), ``count()`` may return a long integer instead of a normal Python integer. This @@ -1140,8 +1141,11 @@ Aggregation `. Returns ``True`` if the :class:`QuerySet` contains any results, and ``False`` if not. This tries to perform the query in the simplest and fastest way possible, but it *does* execute nearly the same query. This means that calling -:meth:`QuerySet.exists()` is faster that ``bool(some_query_set)``, but not by -a large degree. +:meth:`QuerySet.exists()` is faster than ``bool(some_query_set)``, but not by +a large degree. If ``some_query_set`` has not yet been evaluated, but you know +that it will be at some point, then using ``some_query_set.exists()`` will do +more overall work (an additional query) than simply using +``bool(some_query_set)``. Field lookups -------------