1
respuesta

Comprobacion de optimizacion

Hice lo mismo que el profesor, solo que con un comando mas elaborado. El comando es(son tablas clonadas que NO tienen índice ni clave primaria):

SELECT F.FECHA_VENTA, TP.NOMBRE_DEL_PRODUCTO, ITF.CANTIDAD, ITF.PRECIO
FROM FACTURAS1 F
INNER JOIN ITEMS_FACTURAS1 ITF
ON F.NUMERO = ITF.NUMERO
INNER JOIN TABLA_DE_PRODUCTOS1 TP
ON TP.CODIGO_DEL_PRODUCTO = ITF.CODIGO_DEL_PRODUCTO
WHERE YEAR(F.FECHA_VENTA) =2015;

El costo se hace con:

EXPLAIN FORMAT=JSON SELECT F.FECHA_VENTA, TP.NOMBRE_DEL_PRODUCTO, ITF.CANTIDAD, ITF.PRECIO FROM FACTURAS1 F INNER JOIN ITEMS_FACTURAS1 ITF ON F.NUMERO = ITF.NUMERO INNER JOIN TABLA_DE_PRODUCTOS1 TP ON TP.CODIGO_DEL_PRODUCTO = ITF.CODIGO_DEL_PRODUCTO WHERE YEAR(F.FECHA_VENTA) =2015\G;

COSTO = "7 303 966 290.87"

Con indices y claves primarias con el siguiente query script:

ALTER TABLE FACTURAS ADD INDEX(FECHA_VENTA);
-- ALTER TABLE FACTURAS DROP INDEX FECHA_VENTA_2; para borrar anteriores index's

SELECT F.FECHA_VENTA, TP.NOMBRE_DEL_PRODUCTO, ITF.CANTIDAD, ITF.PRECIO
FROM FACTURAS F
INNER JOIN ITEMS_FACTURAS ITF
ON F.NUMERO = ITF.NUMERO
INNER JOIN TABLA_DE_PRODUCTOS TP
ON TP.CODIGO_DEL_PRODUCTO = ITF.CODIGO_DEL_PRODUCTO
WHERE YEAR(F.FECHA_VENTA) =2015;

Luego el costo es: "313 863.02"

El costo se bajo de "7 303 966 290.87" a "313 863.02".

Y al hacer la simulacion con mysqlslap se nota la diferencia:

Sin PK's ni Indices:

Sinceramente ya me canse de esperar xd , pero estuve unos 20 minutos esperando. Solo fueron 100 usuarios y 10 iteraciones, para ambas queries.

Con PK's e indices: Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola Edsel,

Por lo que veo, has hecho un gran trabajo optimizando tus consultas con la adición de índices y claves primarias. Es impresionante ver cómo el costo de tu consulta se redujo de "7 303 966 290.87" a "313 863.02". ¡Bien hecho!

En cuanto a tu simulación con mysqlslap, parece que estás experimentando una mejora significativa en el rendimiento de tus consultas también. Es normal que las consultas se ejecuten más rápido con índices y claves primarias, ya que estas características ayudan a la base de datos a localizar los datos de manera más eficiente.

¡buenos estudios!

¡Saludos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios