9 milioni di records? Porongo!
Comunque MySQL fa esattamente quello che ci si aspetta. Se vuoi ottimizzare questa query:
devi "esplodere" il campo campo_data nei suoi componenti (giorno, mese, anno, ora, minuti) e indicizzare mese. Avere l'indice su campo_data non apporta alcun beneficio se ricerchi per mese.codice:select * from nome-databse where month(campo_data) = 11
Con una base dati così grande, devi valutare attentamente ogni query necessaria per evitare in tutti i modi di scorrere l'intera tabella.