Usar una función en una columna en una cláusula WHERE impide el uso eficiente de un índice en esa columna. Prueba esto en su lugar:
SELECT *
FROM `datetime`
WHERE user_id = 1
AND `date` >= '2010-10-01' AND `date` < '2010-11-01'
Agregue un índice en (user_id, date)
.