Baluart nos ha dejado hoy un buen tutorial donde nos explica el top de los 10 errores MySQL que comenten los desarrolladores PHP y os paso a resumir brevemente para que no caigais en ellos:
- Usar MyISAM en vez de InnoDB: Usa MyISAM sólo para bases de datos sencillas o de pruebas ya que no soporta restricciones de claves foráneas o transacciones y bloquea toda la tabla cuando se inserta o actualiza un registro. Imaginaos esto en una aplicación web a gran escala que tiene 1 millón de visitas diarias.
- Usar las funciones MySQL de PHP: A partir de la versión MySQL 4.1.3 se debe dejar de usar musql_query, mysql_fetch_assoc, etc .. para usar mysqli con interfaz orientada a objetos y muchas ventajas (Ver mysqli)
- No validar el acceso de usuarios: No se debe confiar de lo que el usuario pueda escribir, hay que validar la cadena de texto que recibimos para evitar SQL Injections
- No usar UTF-8: Es preferible usar UTF-8 ya que resuelve muchos problemas de internacionalización.
- Favorecer a PHP sobre SQL: Hay que dar prioridad a SQL sobre PHP ya que hará que nuestras aplicaciones sean mas rápidas. La mejor forma es usando las funciones nativas de MySQL.
- No optimizar tus consultas: El no optimizar tus consulas a la base de datos da muchisimos problemas de rendimiento. Optimiza y vencerás!. Si no sabes como optimizar una base de datos, aqui tienes unos consejos.
- Usar los tipos de datos equivocados: Es importantísimo utilizar los tipos de datos específicos para cada fin. Si vas a insertar fechas lo más normal es que uses tipos de datos de fecha no STRING como se ve en algunos casos. Esto puede complicar las consultas a las tablas.
- Usar * en las consultas SELECT: Cuando queramos recuperar una serie de campos de una tabla no tenemos porque hacer una consulta que recupere todo, indica en la consulta sólo lo que quieres recuperar, la consulta ganará en optimización.
- Sub o Sobre Indexación: Trabaja con Indices, hará que tus consultas sean mucho más rápidas ya que no tendrá que recorrer todos los registros hasta encontrar el deseado. Ten cuidado de no caer en la tentación de poner índices en todos los campos, es contraproducente.
- Olvidarse de hacer backups: Pueden pasar infinidad de cosas en el servidor y tenemos que estar preparados para poder recuperar nuestro contenido. No olvidaros de hacer backups.
- De regalo otro error, Bonus mistake: No considerar otras bases de datos:
Para ver el tutorial al completo visitar el artículo de Baluart.