Зависимый подзапрос (в зависимости от некоторых внешних значений, таких как a.id в вашем случае) не очень эффективный способ найти максимальные значения в подмножествах.
Вместо этого используйте подзапрос с GROUP BY:
SELECT b.topbid, b.topdate, a.*
FROM auction_items a
LEFT JOIN
( SELECT itemID, MAX(bid) as topbid, MAX(date) as topdate
FROM auction_bids
GROUP BY itemID ) b
ON a.id = b.itemID
ORDER BY a.date DESC
LIMIT 15