Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2013, 12:10
Avatar de abimaelrc
abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 1 mes
Puntos: 1517
[Aporte] Hacer query por date en columna tipo datetime (indexada)

Saludos,

Desde hace un tiempo en unas estadísticas, la base de datos creció bastante y me di cuenta que la función DATE verifica desde el inicio de la tabla a pesar de que está indexado el campo y la tabla en la base de datos está bastante grande, eso ocasionaba que los resultados se tardaran minutos. Buscando en internet encontré una buena solución (lamentablemente no me acuerdo en donde fue para postear el enlace, ya que fue hace mucho tiempo) que resuelve el problema. Con usar BETWEEN se puede ver lo que uno desea, es decir

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE column_datetime BETWEEN "2013-04-01" AND "2013-04-10 23:59:59"

No es necesario colocar la hora 00:00:00 porque ya el primero lo hace indirectamente.

Si hay otra alternativa espero sugerencia, pero con esto me ha resultado.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos