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
This commit is contained in:
Luke Plant 2009-12-22 17:32:30 +00:00
parent 51602128a5
commit a5af81f93f
1 changed files with 7 additions and 3 deletions

View File

@ -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 <topics-db-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
-------------