以下查询相对较慢(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
Run Code Online (Sandbox Code Playgroud)
但是当按items.ID DESC而不是items.DATE排序时,速度会急剧加快.事务连接是一个大表(~250k行)并且是一对多的.日期列有一个索引.
有没有办法一般性地提高ORDER BY的性能?
编辑:items.user,transactions.item和items.date上的索引.项目有49列,用户76和事务17.