10 buenos consejos para usar MySQL

Esta lista es un resumen traducido de Ten MySQL Best Practices

  1. Ponle contraseña al usuario root y luego cámbiale de nombre: lo más normal es ponerle contraseña al usuario root, pero no nos sorprendamos si vemos un root sin password o con la misma clave que el nombre de usuario. Lo que no se suele hacer mucho es cambiar el nombre al root y eso es una idea que habría que tener en cuenta… pero que tampoco sea admin, sino algún nombre que de menos pistas.
  2. Oculta MySQL de Internet: es difícil que MySQL necesite estar directamente accesible desde Internet; lo normal es que se acceda a un servidor Web o de otro tipo y sea éste el que se conecte a MySQL.
  3. Protege el directorio de instalación de MySQL de otros usuarios
  4. No almacenes datos binarios: que MySQL lo permita no quiere decir que convenga hacerlo. MySQL envía los datos de una única vez, lo que implica que hasta que no se envíe el campo completo, la aplicación que los requiere no puede parsear la información. Es preferible almacenar los datos en el sistema de ficheros y almacenar en la BD un ruta hasta el fichero. Aunque yo casi recomendaría guardar en la BD una clave, para que mediante una lógica en la aplicación se pueda recuperar la ruta; así, si tenemos que modificar la ruta, no tenemos que modificar todos los registros de la BD, tan solo la lógica del programa.
    Por otra parte, el mismo problema existe para series largas de caracteres; no es un problema que afecte a los datos binarios “porque sí”, sino más bien por el tamaño de los datos.
  5. Usa SQL standard: MySQL ofrece posibilidades que no están incluídas en el SQL estándar y que pueden aportarnos muchas ventajas, pero también problemas: su uso nos impide o limita la exportación de nuestra aplicación a otras BD si en un futuro lo necesitamos. La solución es no ejecutar esas sentencias directamente, sino mediante una clase, que extienda de una clase genérica, así podremos simular esas funcionalidades de MySQL en otras BDs creando otras clases para cada motor de BD.
  6. Crea tu propio generador de auto_increment: el auto_increment nos crea números consecutivos que podemos usar en nuestras tablas, pero con limitaciones: sólo puede haber uno por tabla y son independientes de las tablas, por lo que distintas tablas pueden tener mismo ID, lo cual puede no convenirnos en algunas circunstancias.
  7. No mezcles código de presentación con el de acceso a BD; esto crea código muy difícil de mantener.
  8. Normalización y denormalización: la normalización nos permite tener una BD sin datos redundantes. Desafortunadamente, a veces esta pena el rendimiento, para lo cual, una vez normalizada la BD es conveniente denormalizarla.
  9. Usa un pool de conexiones en el servidor Web o en el servidor de aplicaciones: la conexión a la BD es algo costoso, si compartimos conexión mediante un pool, ganaremos en rendimiento.
  10. Mejoras tus consultas con EXPLAIN SELECT: aunque es difícil de seguir, nos puede ayudar mucho.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: