Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #16895 -- Warned about cost of QuerySet ordering

Thanks outofculture at gmail.com for the suggestion.
  • Loading branch information...
commit cbf08c6b0ca39406cada4bd1ffc6d334a79822e8 1 parent 1185370
@e0ne e0ne authored timgraham committed
View
6 docs/ref/models/options.txt
@@ -221,6 +221,12 @@ Django quotes column and table names behind the scenes.
ordering = ['-pub_date', 'author']
+.. warning::
+
+ Ordering is not a free operation. Each field you add to the ordering
+ incurs a cost to your database. Each foreign key you add will
+ impliclty include all of its default orderings as well.
+
``permissions``
---------------
View
6 docs/ref/models/querysets.txt
@@ -334,6 +334,12 @@ You can tell if a query is ordered or not by checking the
:attr:`.QuerySet.ordered` attribute, which will be ``True`` if the
``QuerySet`` has been ordered in any way.
+.. warning::
+
+ Ordering is not a free operation. Each field you add to the ordering
+ incurs a cost to your database. Each foreign key you add will
+ impliclty include all of its default orderings as well.
+
reverse
~~~~~~~
View
11 docs/topics/db/optimization.txt
@@ -306,6 +306,17 @@ instead of::
entry.blog.id
+Don't order results if you don't care
+-------------------------------------
+
+Ordering is not free; each field to order by is an operation the database must
+perform. If a model has a default ordering (:attr:`Meta.ordering
+<django.db.models.Options.ordering>`) and you don't need it, remove
+it on a ``QuerySet`` by calling
+:meth:`~django.db.models.query.QuerySet.order_by()` with no parameters.
+
+Adding an index to your database may help to improve ordering performance.
+
Insert in bulk
==============
Please sign in to comment.
Something went wrong with that request. Please try again.