Incluso los sitios web más sencillos con poco tráfico acaban necesitando optimizar sus tablas MySQL para obtener un rendimiento superior. El problema es que los Sistemas Gestores de Contenido plug-and-play como WordPress y Drupal a menudo hacen de la optimización de la base de datos MySQL un misterio para los principiantes e incluso para los webmasters que están por encima de la media. Si quieres configurar las tablas MySQL de tu sitio web para obtener los mejores resultados posibles, estos simples aunque altamente productivos trucos te pueden servir.
Reduce la base de datos cuando sea posible
No hace falta decir que una base de datos más pequeña es más fácil de consultar y ofrece unas búsquedas más rápidas. Hay un par de sólidas razones para reducir el tamaño de tu base de datos. En primer lugar, intenta eliminar los metadatos innecesarios y las tablas huérfanas o bien automáticamente o bien manualmente en un determinado horario. Usa un plugin diseñado para tu CMS que elimine las tablas sin usar para evitar el crecimiento innecesario de la base de datos.
No hagas tus consultas en bucles
Uno de los mayores problemas a los que se enfrentan los sitios web basados en PHP que usan MySQL es el llamado fiasco de la consulta en bucle o “loopquery”. En términos sencillos, se trata de una situación en la que una construcción foreachdesencadena una serie de eventos que cargan excesivamente al motor MySQL. Para evitar dicho escenario, usa el comando UPDATE de MySQL para evitar los bucles que se meten en una espiral infinita y acaban dando como resultado consultas incesantes a la base de datos.
Comprueba tu registro de consultas a menudo
Examinar los archivos de registro es gestionar el servidor de manera competente independientemente de lo que estés haciendo. Los archivos de registro MySQL pueden ser especialmente esclarecedores si quieres optimizar el rendimiento del servidor. Lo que debes buscar son las consultas más comunes que se llevan a cabo en un determinado día, semana o mes. Una vez que sepas lo que es común, puedes optimizar esas consultas.
Habilitar un motor de almacenamiento en caché
Es un derroche de recursos del servidor realizar una consulta si la misma consulta exacta ha sido realizada hace no mucho. Es por eso que las plataformas de almacenamiento en caché son tan populares. Implementar un esquema de almacenamiento en caché es bastante fácil gracias a la magia de los plugins.Memcached, AdoDByCSQL son grandes maneras de hacer que las consultas populares parezcan llamadas a páginas estáticas y ahorren recursos.
Usa los comodines con precaución
Por muy geniales que puedan ser los comodines al crear consultas MySQL, pueden provocar consecuencias no deseadas si se usan de cualquier manera. Los comodines de prefijo y sufijo son superiores a los comodines generales en la mayoría de las situaciones, ya que no dan lugar a un gran número de consultas de la base de datos. Lo principal que debes recordar es esto: no te bases en los comodines a menos que conozcas por completo sus ramificaciones.
Aprovecha elLIMIT
En circunstancias ideales, una consulta sólo debería devolver un cierto número de resultados. Cuando los usuarios de un sitio web están buscando una entrada de blog concreta o un producto en tu sitio web, los primeros diez o veinte resultados serán por lo general suficientes. Después de eso, sólo estás malgastando llamadas a la base de datos para obtener resultados que no le importan al usuario típico. Usa LIMIT para mantener los resultados por debajo de 12 o así.
Deshazte de los cachés de consultas
Como sabes, la memoria caché es una parte importante de cualquier esquema de optimización computacional. El problema es que los cachés pueden crecer mucho más rápido de lo que piensas si no les pones límites estrictos. Establecer query_cache_sizeigual a 0 asegurará que tus tablas MySQL no se conviertan en una gran carga en los recursos del servidor independientemente de la configuración de tu alojamiento.
Un poco de indagación puede llegar muy lejos
Obviamente, estos consejos son un poco generales y su eficacia última dependerá de tu sitio web y de la configuración de tu servidor. Aún así, funcionarán más o menos en cualquier base de datos MySQL y sus tablas asociadas. Para obtener el máximo partido de estos simples consejos, necesitarás hacer un poco más de deberes. Pero ten por seguro que el mínimo trabajo de campo necesario te aportará beneficios.