Cuatro millones de filas no es mucho.
Una diferencia de un byte entre los tipos de datos datetime y timestamp es el último cosa que debe considerar al elegir entre esos dos tipos de datos. Revise sus especificaciones .
Hacer una marca de tiempo parte de su clave principal es una mala, mala idea. Piense en revisar qué clave principal significa en una base de datos SQL.
Ponga un índice en su columna de marca de tiempo. Obtenga un plan de ejecución y péguelo en su pregunta. Determine su mediana consulta el rendimiento y pega eso en tu pregunta también.
Devolver las filas de un solo día de una tabla indexada de 4 millones de filas en mi computadora de escritorio toma 2 ms. (Devuelve alrededor de 8000 filas).