questa è la mia base struttura di data e ora:Come ottimizzare la ricerca di data e ora in Mysql?
primary key(datetime) key
auot_id date_time user_id
1 2010-10-01 20:32:34 1
2 2010-10-02 20:32:34 1
3 2010-11-03 20:32:34 2
4 2010-10-04 20:32:34 1
5 2010-11-05 20:32:34 1
e voglio ottenere il risultato del day(date_time)
a '2010-10'
e la user_id = '1';
My SQL è:
SELECT * FROM datetime WHERE user_id = 1 AND DATE_FORMAT(date,'%Y-%m') = '2010-10'
ma il display EXPLAIN
codice :
SIMPLE datetime ALL (NULL) (NULL) (NULL) (NULL) 5 Using where
quindi, questa riga di codice non sembra per essere molto efficace.Come potrei costruire il tavolo per rendere più efficace la mia ricerca ??
Grazie mille !!
Sono nuovo di mysql. Quindi non sono sicuro di quale tipo di indice dovrei aggiungere? Penso di aver fatto un indice su di loro: INDICE 'date' (' date', 'user_id') – qinHaiXiang
Si desidera il contrario, dato che' user_id' è un valore "statico", dato che 'date' viene passato a una funzione . – Danosaure
Vedere https://dba.stackexchange.com/a/140693/39319 dove l'utente spiega meglio come coprire tutti i periodi di data e ora se si è preoccupati per le transazioni di mezzanotte –