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

agilizar busqueda y mostrar algun preload

Estas en el tema de agilizar busqueda y mostrar algun preload en el foro de Mysql en Foros del Web. buenas, tengo una consulta en la cual, quiero encontrar una persona dependiendo de los parámetros de búsqueda. los datos tengo que mirarlos de 3 tablas ...
  #1 (permalink)  
Antiguo 09/08/2011, 10:10
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
agilizar busqueda y mostrar algun preload

buenas,

tengo una consulta en la cual, quiero encontrar una persona dependiendo de los parámetros de búsqueda. los datos tengo que mirarlos de 3 tablas diferentes, ya que los tengo separados por datos personales, datos profesionales y datos de estudios.

tengo más de 20.000 registros, cuando aplico los parámetros de búsqueda, me tarda una eternidad... tengo una programación tal que asi:

Código:

ini_set('post_max_size','100M'); 
ini_set('upload_max_filesize','100M'); 
ini_set('max_execution_time','1000'); 
ini_set('max_input_time','1000'); 

set_time_limit(0); 


if ( $tipo_experiencia != "" )
{
    $where[] = "DPR.tipo_experiencia='$tipo_experiencia'";
	
}

if ( $provincia != "" )
{
    $where[] = "DP.provincia='$provincia'";
	
}

if ( $sexo != "" )
{
    $where[] = "DP.sexo='$sexo'";
	
}

if ( $nivel_estudios != "" )
{
    $where[] = "DE.nivel='$nivel'";
	
}


if ( $vehiculo != "" )
{
    $where[] = "DO.vehiculo='$vehiculo'";
	
}

if ( $disponibilidad_horaria != "" )
{
    $where[] = "DO.disponibilidad_horaria='$disponibilidad_horaria'";
	
}


if( !empty($where) ) 
{ 
    $where_sql = 'WHERE '.implode(' AND ', $where); 
	$where_sql = $where_sql."AND DC.estado='activo' ORDER BY DP.nombre";

}


$sql1 = "SELECT 
    DP.nombre,
    DP.apellidos,
    DP.sexo,
    DP.provincia,
    DE.nivel,
    DO.disponibilidad_horaria,
    DO.viajar,
    DO.vehiculo,
    DO.permiso_conducir ,
	DPR.tipo_experiencia
FROM 
    datos_candidatos DC
    INNER JOIN datos_personales DP ON DC.idcandidato = DP.idcandidato 
    INNER JOIN datos_estudios DE ON DC.idcandidato = DE.idcandidato 
    INNER JOIN datos_profesionales DPR ON DC.idcandidato = DPR.idcandidato $where_sql";

....
1- hay alguna manera de mejorar mi código para que la búsqueda no resulte tan lenta?

2- hay alguna manera de poner algun 'buscando registros' mientras se ejecuta la consulta?

saludos!
  #2 (permalink)  
Antiguo 09/08/2011, 10:42
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: agilizar busqueda y mostrar algun preload

y ademas me encuentro con un problema, y es que en el server que esta alojado no puedo tocar el tiempo de carga, y cuando hacen una busqueda muy grande, me da error de tiempo agotado.. tendriamos alguna manera de agilizar la busqueda?

saludos!
  #3 (permalink)  
Antiguo 10/08/2011, 02:54
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: agilizar busqueda y mostrar algun preload

nadie puede orientarme?
  #4 (permalink)  
Antiguo 11/08/2011, 03:39
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Respuesta: agilizar busqueda y mostrar algun preload

buenas,

me han comentado que para poder agilizar la búsqueda y no me de el servidor el error de tiempo de espera agotado, puedo ir mostrando resultados en opantalla con el LIMIT mientras voy cargando los siguientes...

es eso posible?

Etiquetas: join, preload, registros, select, sql, tabla, busquedas
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 10:23.