Quattro milioni di righe non sono enormi.
Una differenza di un byte tra i tipi di dati datetime e timestamp è l'ultimo cosa dovresti considerare nella scelta tra questi due tipi di dati. Rivedi le loro specifiche .
Creazione di un timestamp parte della tua chiave primaria è una cattiva, cattiva idea. Pensa a rivedere quale chiave principale significa in un database SQL.
Inserisci un indice nella colonna del timestamp. Ottieni un piano di esecuzione e incollalo nella tua domanda. Determina la tua mediana eseguire query sulle prestazioni e incollare quello anche nella tua domanda.
La restituzione delle righe di un solo giorno da una tabella indicizzata di 4 milioni di righe sul mio computer desktop richiede 2 ms. (Restituisce circa 8000 righe.)