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

Mejorar la velocidad en una consulta

Estas en el tema de Mejorar la velocidad en una consulta en el foro de Mysql en Foros del Web. Hola. Cuando utilizo un SELECT con un WHERE, a la tabla le creo un índice con los campos que participan en la condición. De esta ...
  #1 (permalink)  
Antiguo 06/08/2014, 14:38
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Mejorar la velocidad en una consulta

Hola.

Cuando utilizo un SELECT con un WHERE, a la tabla le creo un índice con los campos que participan en la condición. De esta manera la consulta queda más rápida.

Mi duda es si al utilizar un "SELECT tabla1 INNER JOIN tabla2 ON tabla1.codigo = tabla2.codigoarticulo" también debería mejorar la velocidad de la consulta si creo un índice en la tabla1 utilizando el campo codigo y un índice en la tabla2 por codigoarticulo.

Pregunto porque he creado los índices y no veo mejora en la velocidad.

Gracias desde ya por las respuestas.
Saludos
  #2 (permalink)  
Antiguo 06/08/2014, 15:05
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: Mejorar la velocidad en una consulta

Cita:
Mi duda es si al utilizar un "SELECT tabla1 INNER JOIN tabla2 ON tabla1.codigo = tabla2.codigoarticulo" también debería mejorar la velocidad de la consulta si creo un índice en la tabla1 utilizando el campo codigo y un índice en la tabla2 por codigoarticulo.
Si las tablas son InnoDB, y el códigoarticulo es FK de la tabla de artículos, el índice es innecesario, porque ya existe uno qu ees el que controla la relación.
No siempre se deben crear índices para todos los casos, sino optimizar su uso cn algunas técnicas especiales. Pero depende mucho del caso y de los datos en cuestión.
Danos más información (real, no ficticia) de los datos contenidos y de las relaciones, y veremos qué se puede hacer.
__________________
¿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 06/08/2014, 17:18
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Respuesta: Mejorar la velocidad en una consulta

gnzsoloyo, gracias por responder.

Las tablas son MyISAM.

La consulta que utilizo es: "
Código MySQL:
Ver original
  1. SELECT bitacoras1.*, bitacoras1_detalle.*,
  2. ayuda_operarios.*, ayuda_frentes.codigo AS codfen, ayuda_frentes.nombre AS nomfen,
  3. ayuda_empresas.nombre AS nomemp
  4. FROM bitacoras1 LEFT JOIN ayuda_operarios ON bitacoras1.operario = ayuda_operarios.codigo
  5. LEFT JOIN ayuda_frentes ON bitacoras1.idestablecimiento = ayuda_frentes.codigo
  6. LEFT JOIN ayuda_empresas ON bitacoras1.idempresa = ayuda_empresas.codigo
  7. LEFT JOIN bitacoras1_detalle ON bitacoras1.bitacora = bitacoras1_detalle.bitacora
  8. ORDER BY bitacoras1_detalle.bitacora"

Los campos utilizados en cada LEFT JOIN no corresponden a la clave primaria. Son todos del tipo varchar, menos el campo bitacora que es bigint.

Saludos

Última edición por gnzsoloyo; 06/08/2014 a las 19:23
  #4 (permalink)  
Antiguo 08/08/2014, 10:00
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Respuesta: Mejorar la velocidad en una consulta

¿Hay alguna forma de mejorar la velocidad de la consulta?

Gracias
Saludos

Etiquetas: campo, join, mejorar, select, tabla, velocidad
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 13:06.