12/02/2012, 08:53
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años Puntos: 2658 | |
Respuesta: Optimizacion de configuración servidor MySQL 5.5 Vamos por partes:
1) Las consultas que usan "*" para obtener los campos usualmente son las más ineficientes de todas, porque traen todo, incluso campos que no se usarán.
2) Además, habitualmente no hacen uso de los índices secundarios, porque al traer la PK y siendo esta prioritaria en el orden (por ubicación de la columna), el aprovechamiento del índice de fecha es inexistente.
3) Crear un índice sobre un sólo campo, sin mas datos, puede volverse ineficiente, porque si bien la lectura podría acelerarse un poco, el WHERE no es optimizable, y se aplica una vez leído todo, por lo cual no le estas agregando una verdadera optimización al hacer la consulta.
4) Si vas a crear un índice secundario, usa principalmente un conjunto de datos que puedas necesitar en todas las ocasiones, o que sea crítico para la consulta. Algo como usar de clave de indice, la fecha, hora y idinstalacioninversor, podría ser mejor que sólo la fecha.
5) Una cosa que optimiza mucho es llamar a los campos que realmente vas a necesitar, y no a todos. En los sistemas complejos o de muchos datos (trabajo en uno de ellos), traer el listado completo de clientes con todos sus datos podría demandar mucho tiempo. En vez de eso se traen cuatro datos (la PK entre ellos), y luego con sólo la PK se invocan el resto de los que se necesitan. Eso ahorra ingentes cantidades de memoria, procesamiento y transmisión de datos, y le agrega un extra a la aplicación. Hacer las dos llamadas le lelva al sistema más de cien veces menos tiempo que traer todo la primera vez.
Hay oros puntos, pero la muestra que posteaste no permite darte mas consejor.
¿Tienes alguna otra consulta un poco más elaborado que esto sacado de manual? Digo algo verdaderamente lento, con JOINs o subconsultas.
Postea algo que realmente te esté trayendo problemas.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |