Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[1.6.x] Fixed #16895 -- Warned about cost of QuerySet ordering

Thanks outofculture at gmail.com for the suggestion.

Backport of cbf08c6 from master
  • Loading branch information...
commit 276e053803c847ce645b1859a162a997a4ee3789 1 parent e4274e3
Ivan Kolodyazhny e0ne authored timgraham committed
6 docs/ref/models/options.txt
View
@@ -216,6 +216,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``
---------------
6 docs/ref/models/querysets.txt
View
@@ -336,6 +336,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
~~~~~~~
11 docs/topics/db/optimization.txt
View
@@ -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.