Foros del Web » Programando para Internet » PHP »

CONSULTAS a 2 Tablas MYSQL

Estas en el tema de CONSULTAS a 2 Tablas MYSQL en el foro de PHP en Foros del Web. Buenos dias, Estos dias estoy teniendo serios problemas con el VPS, tanto que he tenido que quitar 2 secciones importantes por que segun parece que ...
  #1 (permalink)  
Antiguo 09/09/2013, 05:30
 
Fecha de Ingreso: noviembre-2008
Ubicación: Cochabamba Bolivia
Mensajes: 519
Antigüedad: 15 años, 5 meses
Puntos: 26
CONSULTAS a 2 Tablas MYSQL

Buenos dias,

Estos dias estoy teniendo serios problemas con el VPS, tanto que he tenido que quitar 2 secciones importantes por que segun parece que son los que mas consumen recursos, y eso que las visitas bajaron considerablemente.

Entre tratar de optimizar los scripts pude ver que entre 2 tipos de consultas la carga de pagina tarda mas.

Con este: aunque es una sola consulta pero a 2 tablas a la vez, me resulta que en la pagina en el momento que llega a la parte donde deberia mostrar los resultados de esta consulta tarda aprox unos 5 segundos, ha veces incluso como q se cuelga la pagina ahi.
Código PHP:
Ver original
  1. $sql = "SELECT ML.artista, ML.genero, ML.genero_url, IMG.url FROM music_local ML, imagenes_arts_grupos IMG WHERE IMG.nombre=ML.artista AND ML.genero='$parawhere' ORDER BY rand() LIMIT 6";

En cambio con este codigo em sale todo mas rapido, pero por repeticion de consultas dentro del While me parece que consume mas recursos y se supone que el otro que es una sola consulta deberia ser mas optima.

Código PHP:
Ver original
  1. $sql = "SELECT artista, genero, genero_url FROM music_local WHERE ML.genero='$parawhere' ORDER BY rand() LIMIT 6";
  2. $consul = mysql_query($sql);
  3.  
  4. while($ar =msyql_fetch_assoc($sql)){
  5.  
  6.  
  7. $img  = mysql_query("SELECT url FROM imagenes_arts_grupos WHERE nombre='$ar[artistas]'");
  8.  
  9. }


Entonces al final? si la opcion me esta dando problemas de carga, me diran que la mas adecuada es la segunda? a pesar de que se repite 6 veces una consulta que se puede hacer solo en 1 como en el primer ejemplo.

Saludos.
  #2 (permalink)  
Antiguo 09/09/2013, 07:29
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: CONSULTAS a 2 Tablas MYSQL

me temo que lo lento se debe a que la relación está establecida con cadenas, eso es muy lento a la hora de unir datos, lo ideal es que uses PK y FK como enteros (integer), eso incrementaría mucho la velocidad al hacer el join
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 09/09/2013, 08:37
 
Fecha de Ingreso: noviembre-2008
Ubicación: Cochabamba Bolivia
Mensajes: 519
Antigüedad: 15 años, 5 meses
Puntos: 26
Respuesta: CONSULTAS a 2 Tablas MYSQL

Disculpa, con PK y FK te refieres a un indice primario y unico en ambas tablas?

Saludos.
  #4 (permalink)  
Antiguo 09/09/2013, 08:40
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: CONSULTAS a 2 Tablas MYSQL

Primary Key y Foreign Key, que a pesar de ser indices son conceptos diferentes, en teoría (y vale que en la practica funciona) un indice númerico (integer) es mucho más rápido que uno de cadenas, incluso si de un árbol binario se tratase, integer siempre será más rápido
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: mysql, select, sql, tabla, tablas
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 21:01.