PDA

View Full Version : Query su Mysql per data


rupia
15-11-2007, 11:48
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?

texerasmo
16-11-2007, 12:47
scusa tu fai un query su una tabella do 9 milioni di dati.
Ma è una applicazione web?
Sono tanti 9 milioni.
Ti da pb solo su quella query?
se fai un select del genere

.... where id=??

riesci a farla?

Marenzio
16-11-2007, 15:11
select * from nome-database

Spero ti sia sbagliato a scrivere, perchè se metti il nome del db nel from sei da ricovero...