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:
1- hay alguna manera de mejorar mi código para que la búsqueda no resulte tan lenta?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"; ....
2- hay alguna manera de poner algun 'buscando registros' mientras se ejecuta la consulta?
saludos!