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

carga de la consulta, será demaciado?

Estas en el tema de carga de la consulta, será demaciado? en el foro de Mysql en Foros del Web. Hola gente como estan? Desarrollo web y estoy haciendo un listado, tengo una duda con la forma que utilize para hacer el listado que necesita ...
  #1 (permalink)  
Antiguo 21/03/2011, 15:33
 
Fecha de Ingreso: marzo-2006
Mensajes: 35
Antigüedad: 18 años, 1 mes
Puntos: 2
carga de la consulta, será demaciado?

Hola gente como estan?
Desarrollo web y estoy haciendo un listado, tengo una duda con la forma que utilize para hacer el listado que necesita mi cliente.

La duda es si estas consultas resultarán muy pesadas para el servidor.

Código PHP:
$csql "SELECT *
FROM     categorias
ORDER BY categorias.nombre_cat"
;
$res mysql_query($csql);

while(
$val=mysql_fetch_array($res)){

    
$id_cat=$val['id_cat'];
            
    
$csql_pro "SELECT id_pro, direccion, descripcion, en_pesos, precio, IF(en_pesos=0, (precio*'$valor_dolar'), precio) precio_orden
    FROM     propiedades
    WHERE    propiedades.id_cat = $id_cat and
        propiedades.ven_alq = 'A' and 
        IF(en_pesos=0, (precio*'$valor_dolar'), precio) BETWEEN '$pesos_desde' AND '$pesos_hasta' 
    ORDER BY precio_orden DESC"
;
    
$res_pro mysql_query($csql_pro);

    while(
$val_pro=mysql_fetch_array($res_pro)){
    
    }

Como pueden ver es una consulta anidada dentro de otra...

esto se repite dos veces (dos veces en total, es decir, todo eso y una vez mas todo eso)

Podria generar problemas...? noto que cuando trabajo google chorome me tira un error "EMPTY RESPONSE" o "CONECCTION RESET"...

Si desean saber que servidor tengo contratado o las caracteristicas del mismo pregunten y las pongo... no las quize poner por las dudas que me reten jejeje
  #2 (permalink)  
Antiguo 21/03/2011, 18:42
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: carga de la consulta, será demaciado?

Depende de la cantidad de registros que tenga la tabla propiedades...si son muchos es normal que tarde si no tienes la tabla bien indexada, con todos los campos que contenga el where de la consulta.

Te recomiendo indexar correctamente los campos que contenga la clausula where de esa consulta, asi notaras una mejoria bastante grande.

Por otro lado, el problema de los connection reset y tal y es por los timeout que tiene configurado el servidor apache. Si ve que el navegador le ha pedido una respuesta y esta le tarda mas de x segundos en devolversela (los segundos especificados en el timeout), cierra la conexion. Para solucionarlo, en el php de esa consulta, debes poner un set_time_limit(0); para que tarde lo que tarde no te cierre la conexion. Tambien habia que tocar algo en el config del apache para habilitar el uso de set_time_limit(0);...pero no recuerdo el que, busca en google "set_time_limit(0);" y mirate a ver como es.

De todas formas no es recomendable hacerlo asi salvo por cosas que corran en segundo plano o pruebas internas que hagas, ya que si una consulta a una bd tarda tanto el usuario va a cerrar la pagina y no va a querer visitarte mas...no puede quedarse 5 min esperando a que se termine una consulta.

Un saludo!
  #3 (permalink)  
Antiguo 28/03/2011, 13:17
 
Fecha de Ingreso: marzo-2006
Mensajes: 35
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: carga de la consulta, será demaciado?

Claro! no, la idea no es que tarde tanto! jeje voy a revisar los indices como tu dices y sino voy a probar cambiando ese parametro de php!.

No es posible que haya alguna otra solucion? Creo que mi servidor me limita el tiempo a proposito, porque es compartido, no es un VPS. Aunque siendo cliente hace 6 años creo que deberian estirarme un poco mas ese tiempo si se los pido...

Bueno desde ya gracias! pueden cerrar el tema si lo desean.

Etiquetas: carga
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 08:55.