A veces, cuando una de nuestras aplicaciones web tiene éxito, comienzan a surgir problemas de rendimiento. En concreto, mi colega Dirson está ahora intentando optimizar el rendimiento de la base de datos MySQL de uno de esos servidores. Le hemos puesto cacheo de querys, pero aún así, en comparación con otro servidor que más o menos tiene la misma carga, va más lento de lo deseado. ¿Y qué hacer ahora? Hemos activado el chivato de slow_querys, y estamos a la espera de ver qué consultas son las que más se arrastran. También nos hemos recorrido los índices de las tablas, asegurándonos de que son correctos. Pero, ¿podemos hacer algo más? Por ejemplo, ¿cómo podemos saber qué otros parámetros están disponibles para el tuning de MySQL? ¿Se puede ver gráficamente? ¿Cuáles son los rangos de valores aceptables y cuáles los «mejorables»? Esa es precisamente la labor de MySQL Activity Report, una aplicación web que nos mostrará distintas gráficas a modo de tablero de control de un servidor MySQL, además de indicaciones sobre los valores «razonables» y los «ya_estás_tardando_en_arreglar_esto». Se acaba de instalar en el servidor. Ya comentaré a ver qué sorpresas nos depara (o mejor, que Dirson nos lo comente 🙂
Bueno no sé exactamente de que tipo de aplicación hablamos ni nada sobre la base de datos, pero ¿tienes tablas o datos de solo lectura? Si es asi, ¿has mirado la posibilidad de usar tablas del tipo Heap? Este tipo de tablas cargan en el indice en memoria con lo que el acceso a esos datos es muy rápido. Uso tipico para tablas temporales ya que si se cuelga el servidor se perdería dichos datos.
Un saludo