Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

ayuda con select y indexar en between

Estas en el tema de ayuda con select y indexar en between en el foro de Mysql en Foros del Web. mysql_query ("SELECT publeje.nombre nombre,publeje.tomo t,publeje.folio f,publeje.fecha_nac fechanac,publeje.tm,publeje.fm,publeje.tp,publeje. fp,publeje.raza,b.tomo,b.folio,b.nombre nm,sbaanali.* from publeje LEFT JOIN publeje as b on (publeje.tm=b.tomo and publeje.fm=b.folio) LEFT JOIN sbaanali on (publeje.tomo=sbaanali.tomo) ...
  #1 (permalink)  
Antiguo 28/07/2009, 12:40
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
ayuda con select y indexar en between

mysql_query ("SELECT publeje.nombre nombre,publeje.tomo t,publeje.folio f,publeje.fecha_nac fechanac,publeje.tm,publeje.fm,publeje.tp,publeje. fp,publeje.raza,b.tomo,b.folio,b.nombre nm,sbaanali.* from publeje LEFT JOIN publeje as b on (publeje.tm=b.tomo and publeje.fm=b.folio) LEFT JOIN sbaanali on (publeje.tomo=sbaanali.tomo) and (publeje.folio=sbaanali.folio) where publeje.fecha_nac between '$desdeinv' and '$hastainv' and (resuladn $variable and mu_adn_est = '0' and microchip <> '0') order by publeje.nombre");

Hola a todos, yo tengo esta select y tengo un problema, en el where tengo que la busqueda sea entre 2 fechas usando between,
mi pregunta es que tengo que indexar para aumentar la velocidad de busqueda, porque indexe fecha_nac pero no lo toma.
Poniendo explain y el select en mysql me dice que no usa indice para el between aparentemente.

Espero que me puedan ayudar.

gracias.
  #2 (permalink)  
Antiguo 28/07/2009, 12:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ayuda con select y indexar en between

Tema trasladado desde PHP
  #3 (permalink)  
Antiguo 28/07/2009, 13:35
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: ayuda con select y indexar en between

recien hice una prueba y si en ves de el between hacerlo por fecha lo hago por otro campo que no sea date si me usa el indice correspondiente.
no hay forma que si el between es usado entre 2 fechas que haga un indice?

Saludos.
  #4 (permalink)  
Antiguo 28/07/2009, 13:38
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: ayuda con select y indexar en between

ya probaste así?
where fecha >= 'fecha' and fecha <='fecha2'?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 28/07/2009, 13:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ayuda con select y indexar en between

Cita:
mi pregunta es que tengo que indexar para aumentar la velocidad de busqueda, porque indexe fecha_nac pero no lo toma.
Para que te use el índice definido debes poner la cláusula FORCE INDEX nombreindice, caso contrario usará el índice primario como base.
Ver Manual de referencia: 13.2.7.1. Sintaxis de JOIN
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 28/07/2009, 17:40
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: ayuda con select y indexar en between

tampoco poniendo force anda. cuando hago explain (consulta) . me dice que es del tipo ALL ( segun lei la peor) y me recomienda el indice Fecha pero donde pone que indice se usa en la consulta me pone vacio.

alguna idea?-

gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:59.