03 diciembre 2010

MySQL, lentitud de respuesta en conexiones remotas


Estos días trabajando con MySQL me he encontrado con que cuando realizaba conexiones desde el mismo servidor de bases de datos, las consultas y acciones se ejecutaban de forma casi inmediata.

He pasado a hacer pruebas de conexión a la base de datos MySQL en remoto y me he encontrado con que las acciones sobre la base de datos se demoraban unos segundos y no iban fluidas.

Investigando un poco, la explicación y solución del problema ha sido bien sencilla.

La explicación es que MySQL por defecto, cuando recibe una consulta de un host remoto y tiene que devolver la respuesta, intenta resolver el nombre del host de destino antes de hacer el envío. Si no tienes el servidor DNS bien configurado o si directamente no tienes servidor DNS, aunque utilices IPs, las conexiones van a retardarse.

Si no necesitas de servidores DNS, solucionar el problema es tan sencillo como deshabilitar la resolución de nombres en MySQL, añadiendo en el fichero de configuración “my.cnf” en la sección [mysqld] la línea “skip-name-resolve“, de tal modo que quede:

[mysqld]

skip-name-resolve

1 comentario:

  1. muy bueno, me ha servido de mucho, antes tardaba en abrir cualquier página web del servidor y ahora todo es bastante fluido.

    ResponderEliminar