Użycie funkcji na kolumnie w klauzuli WHERE uniemożliwia efektywne użycie indeksu w tej kolumnie. Spróbuj zamiast tego:
SELECT *
FROM `datetime`
WHERE user_id = 1
AND `date` >= '2010-10-01' AND `date` < '2010-11-01'
Dodaj indeks do (user_id, date)
.