Opened 13 years ago

Closed 11 years ago

Last modified 11 years ago

#16895 closed Cleanup/optimization (fixed)

documentation should warn of cost of ordering

Reported by: outofculture@… Owned by: Ivan Kolodyazhny
Component: Documentation Version:
Severity: Normal Keywords: afraid-to-commit
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: yes
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

In https://docs.djangoproject.com/en/dev/ref/models/options/#ordering it makes no mention of the database cost of ordering, especially for ordering on non-indexed fields, or the implicit joins of chained orderings. (It doesn't even mention that it chains orderings!) https://docs.djangoproject.com/en/dev/ref/models/querysets/#order-by is another location where the cost might be mentioned. It could additionally go in https://docs.djangoproject.com/en/dev/topics/db/optimization/#don-t-retrieve-things-you-don-t-need as a hint for things to look for when optimizing.

Recommend for model options and querysets pages: "Warning: Ordering is not a free operation. Each field you add to the ordering will incur a cost from your database. Each foreign key you add will include all of its default orderings implicitly."

Recommend for optimization page: "==Don't order if you don't care== Ordering is not free; each field added is an operation the database has to perform."

Change History (7)

comment:1 by Preston Holmes, 13 years ago

Needs documentation: set
Triage Stage: UnreviewedAccepted

I think the mention in the optimization docs has priority - but there should be some caution about the risk of having too many performance warnings in the API docs

comment:2 by Daniele Procida, 11 years ago

Keywords: afraid-to-commit added

comment:3 by Ivan Kolodyazhny, 11 years ago

Has patch: set
Owner: changed from nobody to Ivan Kolodyazhny
Status: newassigned

Here is pull request with patch https://github.com/django/django/pull/1603

comment:4 by Tim Graham <timograham@…>, 11 years ago

Resolution: fixed
Status: assignedclosed

In cbf08c6b0ca39406cada4bd1ffc6d334a79822e8:

Fixed #16895 -- Warned about cost of QuerySet ordering

Thanks outofculture at gmail.com for the suggestion.

comment:5 by Tim Graham <timograham@…>, 11 years ago

In 276e053803c847ce645b1859a162a997a4ee3789:

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

Thanks outofculture at gmail.com for the suggestion.

Backport of cbf08c6b0c from master

comment:6 by Tim Graham <timograham@…>, 11 years ago

In fb51c9a0f262eae0ebb36ba1067dc0a4db314401:

Fixed spelling; refs #16895.

Thanks Panagiotis Issaris for the report.

comment:7 by Tim Graham <timograham@…>, 11 years ago

In 01ad5085148bf7dcfc3af4d05cc8c262680f85d9:

[1.6.x] Fixed spelling; refs #16895.

Thanks Panagiotis Issaris for the report.

Backport of fb51c9a0f2 from master

Note: See TracTickets for help on using tickets.
Back to Top