Ir a

¿Qué es MySQL?

MySQL es una de las bases de datos relacionales de software libre más populares del mundo. Debe esta popularidad a su uso generalizado en sitios web de comercio electrónico, redes sociales y aplicaciones, entre los que se incluyen Drupal, Joomla, Shopify y WordPress. También es una parte esencial de la pila de aplicaciones web Linux-Apache-MySQL-PHP/Perl/Python (LAMP), de uso generalizado, que pone en marcha muchas aplicaciones, sitios web y servicios populares. Está clasificada como la segunda base de datos más popular del mundo por DB-Engines.

Descubre cómo puede ayudarte la base de datos relacional gestionada Cloud SQL para MySQL de Google Cloud a reducir los costes operativos y mejorar la eficiencia.

Definición de MySQL

MySQL es un sistema de gestión de bases de datos relacionales de código abierto. Al igual que con otras bases de datos relacionales, MySQL almacena los datos en tablas formadas por filas y columnas. Los usuarios pueden definir, manipular, controlar y consultar datos con el lenguaje de consulta estructurada, también conocido como SQL. Gracias a que MySQL es de código abierto, incluye numerosas funciones desarrolladas en estrecha colaboración con los usuarios durante más de 25 años.

El software MySQL es de código abierto

Al ser de código abierto, MySQL está disponible sin coste adicional en virtud de los términos de la Licencia Pública General de GNU. Esto significa que cualquier persona puede modificar el código fuente del software para su uso propio. Como consecuencia, se han creado tenedores de MySQL a otras variantes de la base de datos, como MariaDB y Percona Server for MySQL. MySQL también está disponible con otras licencias para uso comercial.

Base de datos relacional

MySQL pertenece a una categoría de bases de datos denominadas sistemas de gestión de bases de datos relacionales (RDBMS). Una base de datos relacional es un conjunto de información que organiza los datos en relaciones predefinidas donde se almacenan en una o más tablas (o "relaciones") de columnas y filas, lo que ayuda a ver y comprender la relación entre las distintas estructuras de datos. Las relaciones son una conexión lógica entre diferentes tablas, que se basa en la interacción entre ellas.

Historial

MySQL se creó como una extensión del lenguaje de programación comercial SQL que se basaba en el modelo relacional descrito en la publicación de Edgar F. Codd. La empresa sueca MySQL AB, fundada por David Axmark, Allan Larsson y Michael Widenius, desarrolló y lanzó MySQL en 1995. El nombre "MySQL" es una combinación del nombre de la hija de Michael Wildenius, "My" y "SQL", que hace referencia al lenguaje de consulta estructurada (SQL). Sun Microsystems adquirió MySQL AB en el 2008. MySQL actualmente es propiedad de Oracle Corporation, que absorbió Sun Microsystems en el 2010.

MySQL se desarrolló originalmente en lenguajes de programación C y C++, y sus numerosas versiones han gozado de gran popularidad a lo largo de los años debido a su disponibilidad en muchos sistemas operativos de código abierto y protegidos. La versión más reciente de la base de datos, la versión 8.0 de MySQL, se lanzó en el 2018.

Tenedores

Se han creado tenedores del proyecto de MySQL muchas veces a lo largo de los años por varios motivos, y algunos de ellos ya ni existían. Entre los proyectos tenedores que quedan, los más populares son MariaDB y Percona Server for MySQL. Los fundadores originales de MySQL crearon el tenedor MariaDB para que MySQL siguiera siendo de código abierto, ya que la adquisición de Oracle suscitó cierta preocupación por su comercialización. Percona Server for MySQL es otra distribución de código abierto de MySQL que pretende mantener una compatibilidad cercana con MySQL. Consulta más información sobre las versiones de MySQL y el ecosistema completo en torno a MySQL.

Interfaz de usuario

Se puede acceder a MySQL a través de una interfaz de usuario gráfica (GUI) o de herramientas de interfaz de línea de comandos. 

Interfaz de usuario gráfica

Las GUIs ofrecen un entorno integrado compuesto por botones y widgets de interacción para que las consultas y el desarrollo de las aplicaciones sean una experiencia visual, en lugar de usar comandos basados en texto en una interfaz de línea de comandos. Hay muchas GUIs de MySQL desarrolladas por integradores con terceros y de proyecto de código abierto de MySQL. Una de las más populares es MySQL Workbench, que también es de código abierto y fue desarrollada por MySQL AB. Otras GUIs conocidas son PHMyAdmin, una popular herramienta de administración para desarrollar aplicaciones web, y HeidiSQL, una herramienta de administración de código abierto que se puede usar para gestionar otras bases de datos además de MySQL.

Línea de comandos

También se puede acceder a MySQL a través de herramientas de línea de comandos. Estas herramientas, también conocidas como utilidades de MySQL, se envían con la distribución de MySQL y se invocan con comandos de texto en el shell de MySQL u otras herramientas de interfaz de línea de comandos, como Percona Toolkit.

Despliegue de MySQL

Los usuarios pueden desplegar MySQL manualmente en su propia máquina física con el código fuente, o bien pueden desplegar una de las distribuciones empaquetadas. Normalmente, MySQL se instala en una sola instancia o máquina con el escalado vertical como la forma principal de mejorar el rendimiento. Sin embargo, MySQL se puede establecer en una configuración replicada con un nodo principal y muchos nodos secundarios, que pueden pasar a ser principales en caso de fallo de la instancia.

Otra forma más popular de alojar MySQL es mediante proveedores de servicios en la nube. Hay dos formas de desplegar MySQL en el entorno de un proveedor de servicios en la nube. La primera es instalar MySQL directamente en una máquina virtual y gestionarlo por cuenta propia. La otra es mediante el uso de soluciones gestionadas de proveedores de servicios en la nube que facilitan considerablemente la administración de MySQL, ya que se encargan de gestionar muchos aspectos operativos de MySQL. Google Cloud ofrece un servicio gestionado en forma de Cloud SQL. Cloud SQL para MySQL es un servicio de base de datos totalmente gestionado que te permite configurar, mantener y gestionar tus bases de datos relacionales de MySQL en Google Cloud, lo que reduce el esfuerzo de los administradores de bases de datos y permite a las empresas innovar. Para ello, ofrece servicios de valor añadido en materia de seguridad, alta disponibilidad y observabilidad. Aprende a configurar una instancia de Cloud SQL de MySQL en este artículo sobre las prácticas recomendadas para configurar una instancia de Cloud SQL para MySQL. Migrar a Cloud SQL para MySQL desde MySQL o desde otra base de datos en un proveedor de servicios en la nube es muy sencillo y fácil de usar con muchas herramientas y opciones a disposición de usuario.

Para conocer las ventajas y las diferencias entre la oferta totalmente gestionada de Cloud SQL para MySQL y la versión de MySQL autogestionada, consulta el artículo sobre las opciones de alojamiento de MySQL.

Ventajas de MySQL

MySQL es rápido, fiable, escalable y fácil de usar. MySQL se puede ejecutar de forma cómoda en un ordenador de escritorio o en un ordenador portátil, junto con tus otras aplicaciones, servidores web y demás, por lo que requiere poca o ninguna atención. Si dedicas una máquina entera a MySQL, puedes ajustar la configuración para aprovechar al máximo la memoria, la potencia de la CPU y la capacidad de E/S disponible. MySQL también puede escalar verticalmente a clústeres de máquinas conectadas en red.

Otras ventajas de usar MySQL para gestionar y almacenar tus datos son las siguientes:

Alta disponibilidad

La alta disponibilidad en MySQL hace referencia a la capacidad que tiene el motor de la base de datos para funcionar durante un periodo prolongado sin fallos. La alta disponibilidad en MySQL puede ser muy compleja de configurar y depende de los requisitos de disponibilidad específicos de cada usuario y de cómo despliegue MySQL. Para configurar la alta disponibilidad en MySQL, los usuarios tendrán que tener en cuenta la replicación de datos, la detección de fallos, los mecanismos de conmutación por error o por recuperación, y el redireccionamiento del tráfico de la base de datos a la instancia secundaria después de una conmutación por error. Cloud SQL para MySQL consigue que la alta disponibilidad sea un proceso sencillo. Consulta más información sobre la alta disponibilidad de MySQL en Google Compute Engine o sobre la experiencia de alta disponibilidad totalmente gestionada de Cloud SQL para MySQL.

Seguridad

Las consideraciones de seguridad en MySQL pueden abarcar una amplia gama de factores. Algunos de los más importantes están relacionados con la protección de datos, como la protección de datos contra la corrupción mediante mecanismos de redundancia de datos y procesos de seguridad general, como contraseñas y privilegios, control de acceso y seguridad de red. Consulta más información sobre la seguridad en Cloud SQL para MySQL, la solución de MySQL totalmente gestionada de Google Cloud.

Copia de seguridad y restauración

MySQL admite la copia de seguridad y la recuperación de datos a través de varios mecanismos, como las herramientas de terceros. Algunas de las formas de crear una copia de seguridad y restaurar MySQL son mediante la utilidad mysqldump, las copias de seguridad incrementales mediante registros binarios y la replicación. Cloud SQL para MySQL ofrece sus propias funciones de copia de seguridad y restauración para las copias de seguridad automatizadas o bajo demanda. Más información

Flexibilidad

Es fácil añadir, actualizar o eliminar tablas y relaciones y hacer otros cambios en los datos siempre que lo necesites sin tener que modificar la estructura general de la base de datos y sin que afecte a las aplicaciones que ya tienes.

Facilidad de uso

Es fácil ejecutar consultas complejas con SQL, por lo que los usuarios con menos experiencia pueden interactuar de forma intuitiva con la base de datos.

Rendimiento

La optimización del rendimiento es un aspecto fundamental a la hora de gestionar cualquier base de datos. MySQL proporciona muchas funciones y opciones de ajuste para facilitar el desarrollo de aplicaciones con un rendimiento excelente. Si quieres obtener más información sobre estas funciones, consulta el artículo sobre consejos para optimizar el rendimiento de MySQL. En este otro artículo sobre el ajuste de consultas también se proporcionan prácticas recomendadas específicas para mejorar el rendimiento.

MySQL es compatible con las propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad), que aseguran la validez de los datos independientemente de errores, fallos u otros posibles contratiempos.

Usos

Debido a su versatilidad, MySQL se puede usar en muchos casos prácticos diferentes. A continuación, te mostramos algunas opciones que puedes probar.

Aplicaciones web

MySQL es una parte esencial de muchas aplicaciones web desarrolladas actualmente con la pila LAMP de código abierto. LAMP incluye Linux como sistema operativo, Apache como servidor web, MySQL como base de datos y PHP, Python o Perl como lenguaje de programación. LAMP ayuda a los desarrolladores a crear aplicaciones web dinámicas que requieren recuperar información actualizada de una base de datos, como MySQL. La información puede incluir cuentas de usuario, detalles de usuario, nombres de productos, registros de clientes, ventas, etc. Con SQL, los usuarios pueden acceder y manipular fácilmente la información almacenada en la base de datos. Para obtener más información, consulta los detalles de la pila LAMP y cómo usarla para crear aplicaciones web.

Procesamiento de transacciones online

Hoy en día, muchas aplicaciones necesitan una base de datos, como MySQL, que pueda gestionar rápidamente un amplio volumen de transacciones de bases de datos de un gran número de personas. Las bases de datos de OLTP, como MySQL, son la base de muchas transacciones web diarias, como transacciones financieras, reservas de viajes, registros y mucho más. Para poder admitir los casos de procesamiento de transacciones online, MySQL cumple los siguientes requisitos: los principios ACID, la compatibilidad con XML y JSON, los procedimientos almacenados, el agrupamiento en clústeres y la partición. También ofrece la opción de elegir entre varios buscadores, lo que te ofrece flexibilidad para integrar datos de diferentes tipos de tabla.

Comercio electrónico

MySQL es una base de datos popular para aplicaciones de comercio electrónico que requieran gestionar usuarios, información de los consumidores y datos financieros y analizar tendencias para evitar actividades fraudulentas. Una base de datos relacional como MySQL se puede utilizar para organizar la información en tablas (productos, clientes, pedidos), y se pueden añadir tablas adicionales según sea necesario. Algunas de las multinacionales más importantes del mundo, como Airbnb, Uber, Netflix, Booking.com, Spotify y eBay, usan MySQL para impulsar sus aplicaciones de comercio electrónico. MySQL también se puede desplegar de forma híbrida para cubrir por completo casos prácticos de comercio electrónico. MySQL se puede utilizar como base de datos relacional para datos estructurados y como base de datos no relacional para datos sin estructurar, como detalles de productos o información de marketing. 

Aplicaciones de software como servicio

Las aplicaciones de software como servicio suelen ser servicios de operaciones las 24 horas, por lo que requieren un periodo de inactividad mínimo, seguridad y la capacidad de escalarse según cambien las necesidades. MySQL ha surgido como una opción habitual para crear aplicaciones de software como servicio, ya que es fácil de desplegar, gestionar y escalar. Como es de código abierto, los desarrolladores pueden empezar rápidamente sin tener que pagar licencias por su software. MySQL tiene una comunidad mundial activa que ha contribuido a la creación de complementos que añaden nuevas funciones.

Gestión de contenido

MySQL es una popular base de datos para sistemas de gestión de contenido (CMS) como WordPress y Drupal. Los CMS almacenan publicaciones, páginas, imágenes, comentarios, categorías, etiquetas, campos personalizados, usuarios y otros ajustes de la base de datos de MySQL. Dado que los CMS suelen tener miles o incluso millones de cuentas cada día, MySQL puede gestionar tablas grandes y varias consultas a la vez. A medida que crezca tu audiencia, MySQL podrá escalarse vertical u horizontalmente para satisfacer tus necesidades empresariales. 

Redes sociales

Un aspecto importante de las aplicaciones de redes sociales es la necesidad de establecer conexiones entre varios almacenes de datos, como usuarios, grupos y comentarios. Este tipo de caso práctico se inclina por bases de datos relacionales para aplicaciones de redes sociales con MySQL como su opción principal. Algunos ejemplos destacados son Twitter, Pinterest y LinkedIn.

¿Todo listo para probar MySQL?

Google Cloud te ofrece una opción de MySQL totalmente gestionado: Cloud SQL para MySQL
Más información sobre Cloud SQL

Descubre cómo puede ayudarte a innovar Cloud SQL para MySQL. Ver documentación

Google Cloud ofrece una base de datos MySQL gestionada que se adapta a las necesidades de tu negocio, desde la retirada de tu centro de datos on‑premise, la ejecución de aplicaciones de software como servicio o la migración de sistemas empresariales fundamentales.