Salve a tutti, mi sono appena iscritto.

Ho un problema su una query su Mysql
C'è un campo Data nel database nel classico formato
YYYY-MM-DD HH:MM:SS quindi un datetime, il problema, è che anche se indicizzato le query fanno una ricerca full-text e su 9 milioni di record usando un'applicativo in php il tutto va in timeout.

Ad esempio

select * from nome-databse
where month(campo_data) = 11

se utilizzo explain posso leggere che l'indice non viene utilizzato.

Ho provato anche con

explain
select * from nome-database where
campo-data between '2007-11-01 00:00:00' and '2007-11-12 23:59:59'

con
explain select cast(campo-data as date) from nome-database

sembra che usi l'indice, ma appena inserisco un altro campo l'indice viene ignorato.

E' forse un problema di datetime?