Si en artículo anterior reflexionábamos sobre una tecnología con más de 20 años que está dominando el mercado de desarrollo,  y que muchos creen que es el lenguaje de programación del futuro, hoy creo que es un buen momento para hablar sobre otra tecnología, aunque algunos meses más madura, contemporánea de Javascript: MySQL.

Con tantos paradigmas, enfoques y arquitecturas modernas en el mercado, ¿tiene sentido seguir hablando, y más importante, seguir utilizando MySQL en tus proyectos, en 2019,  en la era de las tags y las web estáticas?

Contexto

MySQL es uno de los sistemas de gestión de base de datos relacionales más utilizados en todo el mundo. Me atrevo a decir que la mayoría (90%) de los sitios web que conoces están de alguna forma conectados a alguna base de datos de MySQL.

El hecho de que sea fácil de implementar, cuente con el conocimiento de la comunidad, y sea escalable, hizo de MySQL la opción ideal para aplicaciones web con base de datos, como Drupal y Wordpress, o sitios web como Facebook, y Twitter. La cuestión es, ¿es MySQL una buena solución para mi negocio hoy?

¿Qué es MySQL?

MySQL (My “sequel”) es un sistema de gestión de base de datos relacionales que almacena datos en formato de tabla, y admite consultas escritas utilizando SQL. SQL viene de Structured Query Language que bien conoces de otros entornos de gestión de base de datos relacionales. ¡Te desafío a decirnos qué significa el “My”!

¿Por qué debería utilizar MySQL?

MySQL es un sistema maduro, bien reconocido y posicionado en el mercado, tanto en el mundo Open Source, como en el Enterprise y sobresale en las siguientes características:

  • Su procesamiento de transacciones es totalmente compatibles con ACID.
  • Está diseñado para soportar base de datos muy grandes. Es, por tanto escalable para satisfacer un alto almacenamiento de datos y la demanda de tus usuarios.
  • Posibilita  crear y forzar la clave principal, y la restricción de clave foránea para que los datos cumplan el esquema. Según qué sector o arquitectura, esta característica es vista como una desventaja por ser demasiado rígida. Sin embargo, es una forma de asegurar la consistencia de los datos y evitar valores duplicados. De la misma forma, te permite tener atajos para recoger datos específicos de una aplicación. Es también una forma de mejorar la velocidad y el rendimiento de la misma.
  • Proporciona la posibilidad de replicar los datos a otros nodos, o através de entornos de clusters con diferentes servidores.
  • Soporta entornos de Alta Disponibilidad, donde cada dato se almacena de forma redundante en otro nodo.

¿Qué problemas tiene MySQL?

No todo son buenas noticias, obviamente. MySQL tiene detractores por los siguientes motivos, entre otros:

  • Su esquema rígido, demasiado limitante, puede ser un dolor de cabeza a la hora de cargar información con varios niveles de detalle, como por ejemplo las tags referidas en el inicio de este artículo.
  • Soporte reducido para tipos de datos no estándares que impide la flexibilidad de almacenamiento. Los datos recibidos pueden ser de diferentes fuentes, pero necesitan ser estandarizados para cumplir con los requisitos de la base de datos.
  • Su concepto “schema on read” no te da la flexibilidad de esquema y posibilidades que te podría proporcionar, por ejemplo, un concepto “schema on load”.

¿En qué negocios tiene sentido utilizar MySQL?

Gracias a sus características, MySQL es una solución adecuada para diferentes tipos de productos y servicios. Te dejo algunos ejemplos:

Empresa Startup

Si Javascript es una herramienta ideal para probar una nueva idea, o producto, necesitarás una base de datos para el Backend. Siendo una herramienta Open Source y teniendo en cuenta sus capacidades referidas anteriormente, creo que MySQL puede perfectamente ser una opción.

Además, también puedes utilizar el sistema en la nube, en AWS, Azure, o Google Cloud a precios muy económicos. Lo bueno de hacerlo en el cloud, y siendo un sistema escalable, es que MySQL puede crecer contigo a medida que tu negocio crece.

CRM

Tu CRM necesita plasmar la información actualizada sobre los contactos de tus clientes, y debe estar preparado para escalar si el volumen de clientes aumenta. Como los datos serán casi siempre del mismo tipo y quieres tenerlos controlados, MySQL es una buena opción, incluso si en el futuro necesitas añadir un nuevo campo - o columna-, de forma excepcional en alguna de las tablas relacionadas con el cliente. Puedes aprovechar de la característica relacional de MySQL y sus claves primarias y foráneas para gestionar estos datos de forma eficiente.

Retail

No conozco a ningún retailer que no quiera que su comercio tenga un esquema bien definido, y sobretodo alta disponibilidad. Si tu producto está bien definido, el esquema de MySQL es también una buena opción. MySQL puede escalar para satisfacer tus necesidades, y más importante, las de tus clientes.

Conclusión

Para terminar, MySQL tiene muchas características que le hacen ser una herramienta adecuada para determinados proyectos. Es una buena opción para tu negocio, gracias a su simplicidad de implementación y escalabilidad, además de la comunidad que siempre está para ayudar. Si conoces bien los datos y además los puedes definir bien, MySQL debe ser tu herramienta.

No es una herramienta perfecta para todos los proyectos, pero es una solución ideal para trabajo transaccional. Si te preocupa la seguridad, creo que es importante referir que MySQL permite crear entornos de datos protegidos a un costo razonable.

De la misma forma, seleccionar un equipo que conozca las capacidades y asuma las limitaciones de MySQL, puede ser una buena jugada estratégica para tu próximo proyecto.

¿Utilizas MySQL en tus proyectos? ¿Cómo sabes que es la mejor solución para tus servicios y aplicaciones?

Fotografía:  Wolfgang Zimmel en Pixabay

Fuente:

  • learn.percona.com