Migrar de SQL Server a MySQL

Al final hemos decidido migrar a MySQL la base de datos de TopMadrid. La razón principal ha sido el precio: Una base de datos de 500 Mb en un servidor SQL Server compartido son 200 €/mes, el doble que en un servidor MySQL compartido (precios de Arsys).

Además MySQL puedes instalártelo en local, lo cual además de ser algo muy útil para hacer pruebas, puede ser interesante para mantener un backup en local automático. Evidentemente esto también lo puedes hacer con SQL Server pero para ello necesitas comprar una licencia… que no la regalan precisamente.

La migración ha sido muy rápida, gracias en parte a SQLyog el mejor GUI para manejar MySQL que yo he conocido, especialmente util para migraciones pues te permite importar datos de varias fuentes ODBC.

Algunas consejos para la migración

  • Para pasar correctamente tus tablas de SQL Server a MySQL es imprescindible dominar los tipos de campo de las dos bases de datos, puesto que en ocasiones la conversión automática que te sugiere SQLyog no es la más correcta.
  • A parte de importar los datos es necesario hacer algunos cambios en el código de tus páginas, concretamente en las sentencias SQL que incluyan fechas ya que la estructura de fechas de MySQL es distinta a la de SQL Server. Es bastante sencillo y puedes crear una función que te transforme las fechas automáticamente.
  • Otro problema que nos trajo de cabeza fue debido no a MySQL sino al Sistema Operativo sobre el que está instalado. El Servidor SQL Server que compartíamos estaba instalado en Windows y por tanto no había problemas con las mayúsculas y las minúsculas, pero como probablemente el nuevo servidor MySQL esté instalado en Linux / Unix si que importa (case sensitive), y si a tus tablas no las llamas exactamente igual no las encuentra, porque cada tabla es un archivo en el servidor.

A parte del precio, MySQL tiene otras muchas ventajas, algunas de las cuales necesitabamos utilizar para el sistema estadístico a medida que estamos desarrollando. Una de ellas es la cláusula LIMIT en el enunciado SELECT del lenguaje SQL, que no existe en SQL Server y es muy útil para la paginación de resultados. Otra que a mi me gusta mucho es EXPLAIN SELECT vital para optimizar tus índices, tipos de indexación y consultas de la base de datos.

En total el proceso nos ha llevado unas 8 horas (intensas), aunque evidentemente todo depende de la complejidad tu aplicación y la experiencia que tengas en migraciones de este tipo.

Trabajo en ENZO desarrollando aplicaciones informáticas para empresas. Me apasiona todo lo relacionado con Internet, las nuevas tecnologías, la programación y los ordenadores. Si te gustan mis artículos puedes suscribirte por e-mail a mi blog.

¿Dejar un comentario? ...YES YOU CAN!