Análisis en profundidad

Bases de datos empresariales de código abierto: las características de MySQL

Verdadero “icono” en el mundo de los SGBD de código abierto, MySQL consigue combinar el encanto de la tradición con un uso generalizado y omnipresente. Un sistema de gestión de bases de datos relacionales (RDBMS) compuesto por un cliente de línea de comandos y un servidor, disponible para una amplia variedad de sistemas operativos: Linux, Solaris, macOS, Windows, FreeBSD y otros.

Publicado el 07 Ene 2022

DBMS MySQL

Identificar las mejores herramientas para gestionar las bases de datos en las que se basan los sistemas de información modernos es, sin duda, uno de los retos más importantes y fascinantes, pero también difíciles, para todos aquellos que pretenden implantar o gestionar programas, software, aplicaciones móviles, portales web y dispositivos electrónicos que interactúan entre sí de forma automatizada.

Ante la gran cantidad de información y datos que deben almacenarse, leerse, modificarse y procesarse prácticamente sin interrupción, se hace prioritaria la elección de SGBD capaces de garantizar no sólo un alto rendimiento sino también, y sobre todo, unos estándares de seguridad, resiliencia, robustez y flexibilidad adecuados al contexto de referencia. Uno de los SGBD más utilizados en el mundo es una de las soluciones de código abierto más populares, MySQL,

¿Qué pasaría, por ejemplo, con una aplicación que se basa en datos recogidos a lo largo del tiempo si su archivo electrónico dejara de estar disponible durante un periodo de tiempo más o menos largo o incluso si dejara de ser recuperable tras un accidente? ¿Cuál es el equilibrio adecuado entre la necesidad de garantizar una adecuada velocidad de escritura y lectura en la base de datos y la necesidad de ofrecer garantías de continuidad y fiabilidad en el tiempo? Tratando de profundizar aún más, ¿es posible identificar una solución en el “mercado global” que, por un lado, represente un buen compromiso entre los diferentes y heterogéneos factores que acabamos de describir y, por otro, constituya una inversión sostenible, adecuada a las perspectivas de crecimiento de la empresa y, sobre todo, al presupuesto disponible?

Evidentemente, no es fácil responder a estas preguntas, que van más allá de los ámbitos puramente especializados para incluir aspectos de carácter estratégico, operativo, económico y de gestión.

En primer lugar, hay que subrayar que toda elección llevará necesariamente asociada una serie de costes directos e indirectos que no pueden eliminarse por completo, a pesar de lo que se pueda creer, ni siquiera convergiendo en productos que puedan descargarse y utilizarse libremente sin ninguna restricción de licencia particular.

El éxito de los SGBD de código abierto

Un buen punto de partida para definir el marco de referencia y reconstruir de forma fidedigna el estado de la cuestión en cuanto a las principales opciones adoptadas por las empresas sobre sus bases de datos, es hojear y analizar el informe actualizado periódicamente por el portal “DB-Engines.com”, que representa una de las fuentes más autorizadas y especializadas en bases de datos.

En este contexto, es posible observar cómo, entre los SGBD más utilizados, detrás de un coloso como Oracle, se encuentra una de las soluciones de código abierto más populares, representada por MySQL, que no por casualidad fue comprada hace unos años por la empresa estadounidense, con el objetivo de crear un verdadero monopolio en el campo de las bases de datos digitales.

De hecho, no se trata de un caso aislado, sino que, por el contrario, es el símbolo de una migración progresiva y aparentemente imparable hacia soluciones de software “abiertas” y flexibles, capaces de responder a necesidades variadas y cambiantes a lo largo del tiempo, que merecen ser investigadas, analizadas y estudiadas para identificar las raíces de un fenómeno que ya es de alcance mundial y comprender qué SGBD se adapta mejor a la propia organización.

Entre los focos que están empujando poco a poco a cada vez más organizaciones hacia los SGBD de “código abierto”, se pueden incluir de forma preliminar, según los principales analistas del sector, dos factores predominantes la naturaleza de los gastos incurridos, que en el caso de los sistemas de “licencia abierta” pueden considerarse “operativos”, es decir, relacionados con la gestión ordinaria de los sistemas y productos, mientras que en el caso de los programas informáticos propietarios pueden asociarse a una inversión de tipo capital (amortizable en varios años), y los grandes beneficios que pueden derivarse de la presencia de comunidades activas e innovadoras siempre centradas en la evolución y mejora del producto de referencia.

MySQL, un icono histórico en continua evolución

A la luz de lo anterior, el punto de partida en el estudio de los sistemas “abiertos” debe ser necesariamente MySQL, que puede considerarse un verdadero “icono” en el mundo de los SGBD de código abierto, sobre todo porque consigue combinar el encanto de la tradición, al ser un producto que se remonta tan lejos que puede contarse entre los precursores de las bases de datos modernas, con una difusión y una omnipresencia absolutamente inéditas.

Desde un punto de vista técnico, MySQL es un “sistema de gestión de bases de datos relacionales” (RDBMS) que consta de un cliente de línea de comandos y un servidor, disponible para una amplia pluralidad de sistemas operativos que abarcan, por ejemplo, Linux, Solaris, macOS, Windows, FreeBSD, etc.

La versión 8.0 del SGBD demuestra una extraordinaria capacidad para adaptarse a la evolución del mercado y a las necesidades de los usuarios. También incluye una plataforma de nueva generación de la familia ampliada de bases de datos “NoSQL”, basada en la gestión de documentos.

Se trata de una auténtica revolución porque permite utilizar simultáneamente, dentro del mismo marco, dos tipos de bases de datos que durante mucho tiempo se consideraron antitéticos, si no mutuamente excluyentes.

Fuerza del régimen de doble licencia

Uno de los principales puntos fuertes de MySQL es su decisión de adoptar, y en cierto modo introducir en el universo del software abierto, el llamado “esquema de licencia dual”, que por un lado ofrece la posibilidad de utilizar el SGBD de forma libre y gratuita a través de la fórmula clásica “GNU GPL” dentro de las aplicaciones liberadas en modo opensource, y por otro lado permite comprar los derechos de uso en el contexto de soluciones de software propietario.

El mecanismo que acabamos de describir está ya muy extendido y consolidado, sobre todo porque garantiza una vía de financiación abierta al mercado y supera las limitaciones intrínsecas a los modelos “totalmente abiertos” basados exclusivamente en licencias abiertas tradicionales.

También cabe destacar la posibilidad de utilizar, previo pago, los servicios de soporte y mantenimiento, que incluyen, entre otras cosas, un servicio personalizado, potencialmente disponible las 24 horas del día, y el acceso a una amplia e interesante base de conocimientos en línea.

Creciente popularidad

Una consecuencia en cierto modo directamente vinculada a la elección de seguir garantizando una versión abierta y libre del SGBD junto a las onerosas opciones “Enterprise”, es la amplia y creciente difusión de MySQL en todo el mundo, en sectores productivos también profundamente diferentes entre sí y en todo tipo de empresas; de hecho, es uno de los raros casos de soluciones instaladas indistintamente en organismos públicos, empresas privadas, pequeñas empresas familiares y multinacionales de importancia planetaria.

El extraordinario éxito se refleja también en unas cifras estratosféricas que en 2019, demostrando una increíble popularidad, marcaron más de 11 millones de instalaciones activas y cientos de miles de búsquedas en Google, intervenciones temáticas en foros especializados, posts en Twitter, etc.

Baste decir que el citado portal “DB-Engines” asigna a MySQL una puntuación (calculada a partir de una serie de indicadores capaces de medir la popularidad de un SGBD) de 1.277,89, ligeramente inferior a la de Oracle (1.343,59) e increíblemente superior a la de su primer competidor “opensource”, PostgresSQL (que se queda en 522,99).

Entre los factores que tradicionalmente han llevado a un gran número de usuarios y empresas a utilizar MySQL se encuentra la completa adopción del llamado paquete “LAMP”, llamado así por las iniciales de las plataformas sobre las que está construido, es decir, Linux, Apache, MySQL y Perl/PHP.

Escalabilidad y flexibilidad

Basta con ir a la sección de descargas del sitio de la oficina para darse cuenta inmediatamente de la extraordinaria variedad de herramientas, conectores, plataformas, sistemas de monitorización y plug-ins disponibles en la amplia familia de MySQL, que, gracias a una comunidad activa y emprendedora, es capaz de ofrecer soluciones a medida para todo tipo de empresas, organizaciones o desarrolladores.

También es especialmente apreciada la posibilidad de añadir, utilizar y configurar, dentro de una base de datos, módulos complementarios de alto rendimiento y especializados, como los “motores de almacenamiento” que permiten una gestión avanzada y diferenciada de las tablas y las operaciones basadas en el lenguaje SQL.

Tampoco hay que olvidar la posibilidad de remodelar fácilmente una base de datos MySQL casi en tiempo real que, mediante un número relativamente pequeño de operaciones, es capaz de migrar de una situación en la que basta con utilizar pequeñas cantidades de información a escenarios mucho más complejos y articulados que requieren la gestión y el tratamiento de varios terabytes de datos.

Muy publicitado, también porque lo utilizan gigantes como Facebook, Twitter, Youtube, Flickr, MediaWiki, Zappos, Zynga, etc, es el llamado ‘Thread Pool’ que, sólo en las versiones de pago, consigue garantizar un rendimiento sostenido ante un aumento repentino del número de usuarios conectados y de consultas ejecutadas. La herramienta, en particular, ofrece un modelo de gestión de hilos altamente escalable, diseñado para reducir la carga computacional global del sistema, contener el número de “conexiones de clientes” y optimizar la ejecución de las sentencias SQL.

Un “test de estrés” realizado por el personal de MySQL ha demostrado cómo el “Thread Pool” es especialmente eficaz en escenarios de varios miles de conexiones simultáneas: en concreto, comparando el rendimiento de las versiones “Community” y “Enterprise”, se puede comprobar cómo la gestión de Threads sigue garantizando un número elevado y constante de transacciones por segundo incluso ante un aumento repentino del número de usuarios conectados, mientras que el producto “free” sufre una marcada y progresiva ralentización hasta llegar prácticamente a la paralización en torno a las 8000 conexiones simultáneas.

Un SGBD “moderno” y orientado a la web

La frenética y repentina difusión de las aplicaciones basadas en tecnologías web ha contribuido, en los últimos años, a reforzar la posición predominante de MySQL que, al haber sido concebido, diseñado, implementado y optimizado con criterios “modernos”, se presenta como el framework ideal y fisiológicamente más útil para quienes pretenden utilizar lenguajes de programación orientados a Internet como Ruby, Ajax, PHP, Perl, JSP, Aspx, etc.

El origen de este éxito se remonta a principios del nuevo milenio, es decir, a una época en la que las bases de datos tradicionales aún miraban con interés los complejos sistemas de gestión diseñados principalmente para instalaciones “on premise”, mientras que MySQL ya se proyectaba como la plataforma de referencia para CMS de gran éxito como WordPress, Joomla, Drupal y phpBB, Drupal y phpBB, dándose a conocer no sólo a los expertos, que siguieron utilizándolo y desarrollándolo participando cada vez más activamente en los trabajos de la comunidad, sino también y sobre todo en el amplio público de “aficionados” y entusiastas que empezaron a comprar a sus “proveedores de hosting” servicios dedicados a la gestión online de bases de datos MySQL.

Un actor que ha jugado un papel decisivo en este sentido desde el principio es, sin duda, PhpMyAdmin, que, tras haber sido creado a finales de los años 90 como una herramienta casi pionera capaz de garantizar la administración de bases de datos en línea, se ha convertido en un “estándar de facto” para la gestión de MySQL en servidores “basados en LAMP”, sobre todo porque permite importar, exportar, componer consultas complejas, eliminar y crear tablas, y realizar búsquedas elaboradas sin tener que utilizar nunca un terminal Linux.

La introducción de InnoDB

Otro ejemplo de la propensión de MySQL a la optimización continua de su entorno lo encontramos en la elección de modificar su motor de almacenamiento por defecto, que es el corazón palpitante de todo SGBD, a partir de la versión 5.5, pasando del histórico MyISAM al más moderno y funcional InnoDB, con el objetivo principal de conseguir conciliar dos elementos fisiológicamente conflictivos como son la seguridad y el alto rendimiento.

En efecto, desde hace décadas, los productores de SGBD se preguntan cómo encontrar un equilibrio entre dos principios aparentemente irreconciliables: si, en efecto, para garantizar la integridad de los datos dentro de las tablas, es necesario aplicar mecanismos de “bloqueo” adecuados durante las actividades de modificación para evitar que las escrituras concurrentes vuelvan incoherente la información de la base de datos, se puede obtener una mayor velocidad de procesamiento mediante la gestión simultánea de varias solicitudes, lo que naturalmente facilita la competencia.

Para hacer frente a este dilema, el personal de MySQL ha tratado de introducir una serie de características en “InnoDB” que son significativamente mejores que las versiones anteriores:

  • Se ha implementado un mecanismo que permite al SGBD encapsular varias operaciones de modificación de datos dentro de una única “transacción”: esto garantiza que los resultados se vuelvan persistentes en la base de datos sólo en caso de éxito de cada escritura individual y que, a la inversa, todas las modificaciones realizadas se cancelen en caso de fracaso de una sola actividad;
  • Innob es capaz de gestionar las llamadas “claves foráneas”, que dan la posibilidad de crear una relación lógica entre los datos de dos tablas, para evitar que los cambios en una de ellas hagan que los datos de la otra sean inconsistentes;
  • el nuevo motor es capaz de activar sistemas de “bloqueo” que afectan a filas individuales y no a tablas enteras, lo que permite, con este nivel de granularidad, limitar las porciones de datos que se cristalizan durante las modificaciones;
  • Se ha adoptado una técnica de gestión de la concurrencia extremadamente eficaz, denominada “Control de la concurrencia multiversión” (también conocida por sus siglas MCC), que permite aumentar el número de consultas simultáneas sin verse ralentizado por los “bloqueos” aplicados por otras transacciones;
  • InnoDb también utiliza los llamados “índices agrupados”, que generalmente coinciden con la clave primaria de una tabla, y que garantizan un alto rendimiento porque se definen y almacenan directamente en el archivo que contiene los datos de las filas individuales. De este modo, es posible eliminar los retrasos fisiológicos asociados a la apertura de varios documentos y devolver los resultados en el menor tiempo posible;
  • el tamaño máximo de una tabla se ha limitado estratégicamente a 64TB, que es menos de lo que permiten otros motores de almacenamiento, con el fin de garantizar operaciones de lectura más ágiles y rápidas que satisfagan las expectativas de los usuarios más exigentes.

Bajo costo total de propiedad

Otro factor de gran importancia en la elección de un SGBD a nivel empresarial es, sin duda, el relacionado con los costes de compra, gestión, mantenimiento y explotación, que pueden resumirse condensándolos en el concepto, cada vez más famoso y extendido, de “coste total de propiedad”, destinado a proporcionar una visión general de los gastos relativos a todo el ciclo de vida de un sistema informático, desde su nacimiento hasta su eliminación.

Una vez más, MySQL se muestra como una solución extremadamente competitiva, capaz de garantizar a las empresas un ahorro considerable que, a la luz de la optimización continua promovida por los principales marcos internacionales de gobernanza de TI (por ejemplo, Cobit 5 de ISACA), podría invertirse en hacer aún más eficientes y seguras las arquitecturas de hardware y software subyacentes al funcionamiento de sus sistemas.

Según una sección dedicada del sitio, a través de una comparación de los precios oficiales cobrados por los distintos competidores, MySQL “promete” a sus usuarios un ahorro global de más del 90%, como se puede ver en la siguiente tabla, que simula un escenario con 4 servidores, 16 sockets y un total de 128 núcleos:

Atención a la seguridad

En un contexto en el que las organizaciones son cada vez más dependientes de sus sistemas de información, hasta el punto de que en algunos casos no pueden permitirse ni siquiera breves interrupciones en la prestación de sus servicios digitales, la gestión de la seguridad de las bases de datos desempeña un papel fundamental, no sólo en el sentido clásico de integridad, atomicidad y persistencia, sino también y sobre todo en términos de continuidad operativa, robustez y resistencia a los eventos anómalos.

En cuanto a la recuperación de desastres, es decir, la capacidad de restaurar los servicios vitales ante situaciones muy adversas, MySQL está en línea con los estándares internacionales (por ejemplo, ISO/IEC 27001) al proporcionar funciones para la replicación “off-site” (es decir, en centros de datos remotos), la gestión de copias de seguridad completas e incrementales, incluidas las copias de seguridad in situ (en el centro de datos de producción) y la recuperación puntual (también conocida como PITR), que restaura todo el sistema al estado en que se encontraba en un momento determinado.

Especialmente avanzados son también los servicios relacionados con el cifrado, que es una de las técnicas más críticas para garantizar un nivel adecuado de protección de datos, con especial referencia a los de carácter personal que entran en el complejo y articulado ámbito de la legislación nacional y europea sobre privacidad. En este contexto, también en relación con el ya famoso principio de “responsabilidad” introducido por el GDPR, los servicios de MySQL se vuelven aún más útiles, ya que garantizan un buen grado de granularidad, permitiendo cifrar no sólo los datos de las tablas, sino también las copias de seguridad, los archivos de registro y las conexiones (mediante el uso del protocolo SSL/TLS).

Muy interesante, desde el punto de vista de la seguridad, es la presencia de un verdadero cortafuegos de software que proporciona protección en tiempo real contra los ataques específicamente dirigidos contra las bases de datos, con especial referencia a todas aquellas situaciones en las que los usuarios deban proporcionar datos de entrada o puedan ponerse de manifiesto alteraciones maliciosas en las “consultas SQL” o accesos sospechosos por parte de empleados de la organización.

Partiendo de la consideración de que millones de registros con información personal, financiera, sanitaria, judicial, etc. pueden ser rápidamente robados a través de una base de datos, el db-firewall realiza actividades de vigilancia y defensa en modo “pasivo” (enviando las señales de alarma oportunas) y en modo “activo” (bloqueando las sesiones de trabajo conectadas a las parcelas consideradas maliciosas o sospechosas).

El potencial del módulo NoSQL

Tras convertirse con el paso del tiempo en el SGBD relacional de código abierto más importante en cuanto a número de descargas e instalaciones en todo el mundo, MySQL consiguió iniciar, y en gran medida realizar con éxito, un fascinante camino de reconversión y transformación que llevó al nacimiento de un módulo basado en el concepto de “documento” y perteneciente a la familia de los SGBD noSQL.

De este modo, la “marca” adquirida a Oracle es capaz de potenciar sus funcionalidades, añadiendo servicios y herramientas decididamente modernas y en línea con las tecnologías más avanzadas, pero, al mismo tiempo, abre nuevos escenarios en el mundo de las bases de datos, acercando, si no solapando, dos filosofías que hasta hace poco se consideraban antitéticas entre sí.

Los elementos que más caracterizan al “Document Store”, de hecho, se remontan a la capacidad de armonizar en un solo producto el potencial típico de las bases de datos relacionales con el potencial innovador y disruptivo de las llamadas bases de datos “sin esquema”.

Por ejemplo, mientras que muchas bases de datos NoSQL tienen problemas importantes con la persistencia de los datos o la consistencia de la información, el nuevo módulo de MySQL, basado en el motor “InnoDb” descrito anteriormente, garantiza el uso de transacciones “ACID”, es decir, asegura la atomicidad, la consistencia, el aislamiento y la durabilidad, de forma similar a lo que se encuentra en las bases de datos SQL.

El objetivo básico es, por tanto, potenciar las características positivas de las bases de datos no relacionales, como permitir el acceso a los documentos de forma simplificada y rápida, sin renunciar a la solidez y fortaleza de los “motores de BD” tradicionales.

El “Almacén de Documentos” de MySQL, por ejemplo, permite utilizar las operaciones típicamente vinculadas a la gestión de documentos, adscritas al famoso acrónimo “CRUD”, es decir, las funciones “Crear”, “Leer”, “Actualizar” y “Borrar” (traducibles a “Crear”, “Leer”, “Actualizar” y “Borrar”) pero, al mismo tiempo, también ofrece la posibilidad de realizar “consultas SQL” con el objetivo de explotar la potencia y expresividad de un lenguaje maduro y muy conocido por los expertos.

El nuevo módulo también ha sido diseñado para responder a algunas de las limitaciones de los principales competidores y para atraer a los usuarios del cada vez más amplio grupo de usuarios de bases de datos noSQL: no es casualidad, de hecho, que se haya superado el límite de 16 MB impuesto por el popular competidor no relacional ‘MongoDb’ para poder gestionar documentos de gran tamaño.

Conclusiones

En el variado y multiforme universo de los SGBD, MySQL representa no sólo un llamativo ejemplo de éxito, hasta el punto de convertirse en un auténtico caso de estudio con el paso de los años, sino también un referente que, a lo largo de las últimas décadas, ha sabido adaptarse a la evolución de la tecnología y a las necesidades cambiantes de los usuarios para innovar y transformarse en un marco cada vez más amplio, potente, escalable y funcional.

Comenzando como un gestor de bases de datos relacionales totalmente de código abierto, ha llegado a ofrecerse gradualmente como un producto de “doble licencia” capaz de combinar la solidez de los motores basados en SQL con la innovación de las soluciones “sin esquema”.

En este contexto, la adquisición por parte de un gigante como Oracle, que ha construido su fortuna sobre las bases de datos, y que supo captar a tiempo las “señales débiles” procedentes de un producto ya famoso pero aún “inmaduro”, transformándolo en un verdadero estándar universal, no fue ciertamente una casualidad.

La creciente popularidad del producto ha favorecido, sin duda, el desarrollo de nuevos e importantes componentes que, como el nuevo motor db ‘Innodb’, han contribuido decisivamente a consagrar a MySQL en la élite de las bases de datos, hasta el punto de ocupar la segunda posición en el ranking especial de los SGBD más utilizados, por detrás (no por casualidad) del producto estrella de la empresa matriz (Oracle Database, ahora en la versión 19c).

Entre los puntos fuertes más representativos se encuentran la flexibilidad, la escalabilidad y los costes extremadamente competitivos que, como demuestra un estudio del portal oficial de SGBD, podrían permitir a las empresas ahorrar incluso más del 90% en comparación con productos similares ofrecidos por algunos de los competidores más famosos.

Además, no hay que subestimar la atención a la seguridad e integridad de los datos almacenados en las tablas propias, que se defiende mediante una serie de herramientas muy eficaces, entre las que merece una mención especial el DB-firewall, capaz de añadir una capa de salvaguarda complementaria y especializada a la arquitectura de protección de todo el sistema.

El verdadero punto de inflexión que, de hecho, ha lanzado a MySQL en el emergente y tumultuoso mercado de las bases de datos de nueva generación, está, finalmente, representado por la introducción de un módulo, el “Document Store”, capaz de gestionar agregaciones de datos no basadas en esquemas y tablas, sino en documentos flexibles, dinámicos y, sobre todo, más capaces de responder a las necesidades cambiantes de las aplicaciones y los usuarios finales.

Prohibida su reproducción total o parcial.

¿Qué te ha parecido este artículo?

¡Su opinión es importante para nosotros!

A
Giuseppe Arcidiacono
Temas principales

Especificaciones

B
base de datos
E
Empresas

Nota 1 de 2