Использование ORDER BY field DESC
- это, как правило, будет быстрее и легче для чтения (и немного меньше для потребления памяти сценарием), но если вы уже написали это, это не так важно, что я вернусь, чтобы сделать это заново.
Однако в некоторых случаях вам действительно нужно придерживаться обращения к массиву после запроса. Например, когда вы заказываете по индексу:
SELECT table.field
FROM table USE INDEX ([index])
WHERE ...
ORDER BY [index] DESC
Возможно, будет гораздо быстрее использовать ASC
или DESC
, поэтому вы просто захотите выполнить более быстрый порядок и затем изменить его на обратный: см. MySQL ORDER BY DESC работает быстро, но ASC очень замедлять
Кроме того, в случаях, когда запрос mysql становится намного более сложным в результате упорядочения, может быть быстрее развернуть массив. Например, если вам нужны только последние три результата запроса, который возвращает пять результатов, но вы хотите, чтобы они упорядочивались по порядку, вы должны выполнить подзапрос, например:
SELECT * FROM (
SELECT ...
ORDER BY field ASC
LIMIT 3
) AS sq ORDER BY field DESC
В этом сценарии может быть намного проще (и, возможно, быстрее) просто запустить:
SELECT * FROM table WHERE ... ORDER BY field DESC LIMIT 3
и обратный результат после их возвращения.