este es mi estructura de fecha-hora básica:¿Cómo optimizar la búsqueda de fecha y hora en 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
y quiero obtener el resultado de la day(date_time)
en '2010-10'
y la user_id = '1';
My SQL es:
SELECT * FROM datetime WHERE user_id = 1 AND DATE_FORMAT(date,'%Y-%m') = '2010-10'
pero la pantalla EXPLAIN
código :
SIMPLE datetime ALL (NULL) (NULL) (NULL) (NULL) 5 Using where
Por lo tanto, esta línea de código no parece para ser muy eficaz. ¿Cómo podría construir la tabla para hacer que mi búsqueda sea más efectiva?
Muchas gracias !!
Soy nuevo en mysql. Entonces, no estoy seguro de qué tipo de índice debo agregar? Creo que había hecho un índice sobre ellos: INDEX 'date' (' date', 'user_id') – qinHaiXiang
Lo quiere al revés, ya que' user_id' es un valor "estático", como 'date' se pasa a una función . – Danosaure
Consulte https://dba.stackexchange.com/a/140693/39319 donde el usuario explica mejor cómo cubrir todos los períodos de fecha y hora si le preocupan las transacciones a medianoche –