Следующий запрос относительно медленный (0,7 секунды с ~ 6k строк)
SELECT items.*, COUNT(transactions.ID)
FROM items
INNER JOIN users ON (items.USER = users.ID)
LEFT JOIN transactions ON (items.id = transactions.item)
WHERE items.ACTIVE = 1
AND items.DELETED_AT IS NULL
GROUP BY items.ID
ORDER BY items.DATE DESC
LIMIT 20
, но значительно ускоряется при упорядочивании по items.ID DESC вместо items.DATE. Транзакции соединение выполняется с большой таблицей (~ 250 тыс. строк) по принципу "один ко многим". Столбец даты имеет индекс.
Есть ли способ в целом улучшить производительность ORDER BY?
EDIT: индексы на items.user, transaction.item и items.date. Items имеет 49 столбцов, пользователей 76 и транзакции 17.