I'm trying to optimise the following query.
SELECT C.name, COUNT(DISTINCT I.id), COUNT(B.id)
FROM Categories C, Items I, Bids B
WHERE C.id = I.category
AND I.id = B.item_id
GROUP BY C.name
ORDER BY 2 DESC, 3 DESC;
- Categories is a small table with 20 records.
- Items is a large table with over 50,000 records.
- Bids is a even larger table with over 600,000 records.
I have an index on
Categories(name, id), Items(category), and Bids(item_id, id).
The PRIMARY KEY
for each table is: Items(id), Categories(id), Bids(id)
Is there any possibility to optimise the query? Very appreciated.