Foros del Web » Programando para Internet » PHP »

Excede tiempo una busqueda php MySQL

Estas en el tema de Excede tiempo una busqueda php MySQL en el foro de PHP en Foros del Web. Hola amigos, espero que alguien me pueda ayudar o dar alguna idea, tengo una base de datos en MySQL con alrededor de 22,000 registros y ...
  #1 (permalink)  
Antiguo 01/10/2006, 12:15
 
Fecha de Ingreso: abril-2005
Ubicación: Ciudad de México
Mensajes: 50
Antigüedad: 19 años
Puntos: 2
Excede tiempo una busqueda php MySQL

Hola amigos, espero que alguien me pueda ayudar o dar alguna idea, tengo una base de datos en MySQL con alrededor de 22,000 registros y con un tamaño de casi 190 megas, ahora cuando hago una busqueda pagino de 20 en 20, pero primero pasaba el tiempo de execucion de php, en modo consola lo hice y se tardo el query 14 minutos, primero hago un query para paginar 20;

$sql="SELECT * , MATCH (contenido) AGAINST ('$q') AS puntuacion
FROM control1 WHERE MATCH (contenido) AGAINST ('$q')
ORDER BY puntuacion DESC LIMIT $from, $max_results";

Despues otro que me da un total de los resultados, así puedo dividir para sacar el total de paginas he iniciar la paginacion.


$sql_filtro="SELECT * , MATCH (contenido) AGAINST ('$q') AS puntuacion
FROM control1 WHERE MATCH (contenido) AGAINST ('$q')";


en este ultimo query es donde se tarda los 14 minutos, espero y me puedan ayudar.

Gracias
  #2 (permalink)  
Antiguo 01/10/2006, 13:11
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Hola webrek!

No estoy muy seguro pero yo creo si sustituyes esa sentencia sql por esta podría tomar menos tiempo de procesamiento, debido a que no te devuelve toda la información obtenida sino solamente el número de filas usando la función count:

Código PHP:
$sql_filtro="SELECT COUNT(*) nFilas
FROM control1 WHERE MATCH (contenido) AGAINST ('$q')"

Sería cuestión de revisar los tiempos.


Un saludo!
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 14:22.