Indexes can affect the performance of ORDER BY clauses. This MySQL man page is probably worth your time. Essentially, if you order by a column that is part of the index that MySQL uses to query, MySQL can use the index to sort, not the data itself.
In your particular query, the fact that the DATE column has an index does not matter, since that index is probably not used in your query. Your WHERE statement contains items.ACTIVE and items.DELETED_AT , and if these columns have an index that is used for WHERE that does not include a DATE column, then MySQL cannot use the index to sort by DATE and probably resort to sorting the file.
If you can find an index that can be used by both WHERE and ORDER BY , you will get an optimization boost. In this case, items.ACTIVE looks like a low power column, so if items.DELETED_AT is a date, I would probably try an index like INDEX(DELETED_AT,DATE) for this table.
Use EXPLAIN SELECT... to find out more about what's going on there, you can get more information.
source share