Optimizando las Consultas en MySQL

10 tips para la optimización de consultas en Mysql es un articulo en ingles que recopila consejos utiles para crear mejores consultas en nuestra aplicacion, basado en ese, y otros post, he sacado mi propia lista de consejos para mejorar el desempeño tanto del servidor de MySql como de las consultas que se realizan.

Consejos para Optimizar MySQL

  • Darle permisos adecuados a los usuarios: si solo se van a realizar consultas del tipo SELECT es recomendable darle permisos solo de este tipo al usuario que se conecta a la base de datos y asi evitar que mysql revise todos los permisos en cada consulta, además de aumentar la seguridad de la base de datos, mejora el tiempo de respuesta.
  • Deshabilitar el DNS del mysql: mysql permite conectarse a un servidor a traves del nombre de dominio, sin embargo en el caso de que la base de datos trabaje en local no es necesario esta función, si la deshabilitamos se consigue ahorrar el tiempo que tarda MySQL en resolver la dirección IP por medio del nombre de dominio.
  • Activar el Query Cache: disminuye la carga en el servidor al grabar los resultados de consultas previas.
  • Priorizar consultas: puede que en ciertos casos se necesiten priorizar algún tipo de consultas, en estos casos se puede hacer uso de instrucciones como:
    • INSERT DELAYED.- cuando no se necesita saber si se ha realizado la incersion correctamente, como ventaja no espera a que el insert se haya procesado por lo que la respuesta es más rápid, además encola los INSERT y los procesa por lotes haciendolos más optimos para el servidor. En contra parte no se tiene certeza del ingreo por lo que si llegase a fallar el servidor por cualquier motivo la información se perdería.
    • INSERT LOW_PRIORITY.- con esta instrucción lograremos priorizar las sentencias SELECT sobre las sentencias INSERT las cuales deberán esperar a que no haya otro usuario leyendo la tabla para ejecutarse.
    • SELECT HIGH_PRIORITY.- su función es opuesta a la anterior priorizando los INSERT sobre cualquier otra sentencia.
  • Optimizar las consultas: es posible que se esten realizando consultas de más o innecesarias, es una buena idea repasar el codigo y ver en que nos podemos ahorrar llamadas a la base de datos o simplemente mejorar la sintaxis de los queries, por ejemplo para optimizar los INSERT se puede usar inserción multiple, aunque no siempre sea factible.

Si deseas una explicación un poco más detallada, existe una mayor referencia de como optimizar consultas en esta direccion (en ingles) y de como mejorar las configuraciones de nuestro servidor MySQL en esta otra (tambien en ingles).

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s