How does MySQL process ORDER BY and LIMIT in a query?

Alex picture Alex · Jan 17, 2011 · Viewed 523.4k times · Source

I have a query that looks like this:

SELECT article FROM table1 ORDER BY publish_date LIMIT 20

How does ORDER BY work? Will it order all records, then get the first 20, or will it get 20 records and order them by the publish_date field?

If it's the last one, you're not guaranteed to really get the most recent 20 articles.

Answer

James picture James · Jan 17, 2011

It will order first, then get the first 20. A database will also process anything in the WHERE clause before ORDER BY.