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

Optimización de llamada

Estas en el tema de Optimización de llamada en el foro de Mysql en Foros del Web. Veréis tengo un viejo osCommerce funcionando, tiene mil modificaciones, en una página de administración que he hecho realizo esta llamada y tarda unos 10 segundos ...
  #1 (permalink)  
Antiguo 04/09/2013, 03:37
Avatar de lambar  
Fecha de Ingreso: marzo-2005
Ubicación: Murcia Fumeta
Mensajes: 55
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Optimización de llamada

Veréis tengo un viejo osCommerce funcionando, tiene mil modificaciones, en una página de administración que he hecho realizo esta llamada y tarda unos 10 segundos en cargarla:
Código MySQL:
Ver original
  1. SELECT p.products_id, p.products_model, p.products_image, p.products_price, m.manufacturers_id, m.manufacturers_name, d.products_name, GROUP_CONCAT(CONCAT(c.categories_id, '|', c.categories_name) SEPARATOR  '¦') as categorias
  2. FROM products p
  3. LEFT JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id
  4. LEFT JOIN products_description d ON p.products_id = d.products_id
  5. AND d.language_id =3
  6. LEFT JOIN products_to_categories pc ON p.products_id = pc.products_id
  7. LEFT JOIN categories_description c ON c.categories_id = pc.categories_id
  8. AND c.language_id =3
  9. GROUP BY p.products_id


Al ejecutar la llamada directamente en PHPMyAdmin veo lo siguiente:

Mostrando registros 0 - 29 (5,273 total, La consulta tardó 12.7185 seg)

Como puede tardar 12 segundos en realizar la llamada....manejo muchos datos pero en realidad es poca cosa:


products_id products_model products_image products_price manufacturers_id manufacturers_name products_name categorias
1 Auviart img_si.gif 2.9900 1 Abba Chiquitita [BLOB - 32Bytes]
2 Auviart img_si.gif 2.9900 2 Alejandro Fernandez A Pesar De Todo [BLOB - 22Bytes]
3 Auviart img_si.gif 2.9900 2 Alejandro Fernandez Abrazame [BLOB - 22Bytes]


Alguien sabe y o tiene idea de como puedo optimizar esta llamada??
Un millon de gracias...

Última edición por gnzsoloyo; 04/09/2013 a las 03:53
  #2 (permalink)  
Antiguo 04/09/2013, 03:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Optimización de llamada

La primera pregunta sería: ¿Son tablas InnoDB o MyISAM?
Eso es algo que puede afectar.
Por otro lado, sería interesante saber si esos 12 segundos son los que phpMyadmin tarda en mostrar la info, o lo que tarda MySQL en ejecutar la consulta. Son cosas diferentes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 04/09/2013, 04:18
Avatar de lambar  
Fecha de Ingreso: marzo-2005
Ubicación: Murcia Fumeta
Mensajes: 55
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Optimización de llamada

Cita:
Iniciado por gnzsoloyo Ver Mensaje
La primera pregunta sería: ¿Son tablas InnoDB o MyISAM?
Eso es algo que puede afectar.
Por otro lado, sería interesante saber si esos 12 segundos son los que phpMyadmin tarda en mostrar la info, o lo que tarda MySQL en ejecutar la consulta. Son cosas diferentes.
Gracias por tu respuesta, las tablas son MyISAM, y mi página tarda más o menos lo mismo en cargar que phpmyadmin así que imagino que es MySQL el que tarda tanto en ejecutar la consulta...
  #4 (permalink)  
Antiguo 04/09/2013, 04:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Optimización de llamada

Que sean tablas MyISAM no es bueno en tu caso, porque no existirán índices de FK, que podrián ayudar.
De todos modos, índices sobre esas columnas tal vez ayude.
Y no, que la pagina web tarde lo mismo en realidad indicaria que el problema puede no estar en la consulta o MySQL, sino en la transferencia de datos fuera de el.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 05/09/2013, 03:16
 
Fecha de Ingreso: julio-2013
Mensajes: 87
Antigüedad: 10 años, 9 meses
Puntos: 9
Respuesta: Optimización de llamada

¿No puedes lanzar la consulta directamente sobre la consola y así ver exactamente el tiempo que tarda? También es interesante usar la sentencia EXPLAIN para saber qué indices te está usando la consulta.

Etiquetas: join, llamada, optimización, php, registros, select
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:06.