Ir a

¿Qué es MySQL?

MySQL es una de las bases de datos relacionales de código abierto más populares del mundo. Esta popularidad se debe a su uso extendido en sitios web de comercio electrónico, redes sociales y aplicaciones, incluidas Drupal, Joomla, Magento y WordPress. También es una parte esencial de la pila de aplicaciones web Linux-Apache-MySQL-PHP/Perl/Python (LAMP) de amplio uso en muchas aplicaciones populares, sitios web y servicios. Es la segunda base de datos más popular del mundo según DB-Engines.

Obtén información sobre cómo la base de datos relacional administrada de Google Cloud, Cloud SQL para MySQL, puede ayudarte a reducir los costos operativos y mejorar la eficiencia.

MySQL definido

MySQL es un sistema de administració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 compuestas por filas y columnas. Los usuarios pueden definir, manipular, controlar y consultar datos mediante el lenguaje de consulta estructurado, más conocido como SQL. Debido a que MySQL es de código abierto, incluye muchas características desarrolladas en estrecha colaboración con los usuarios durante más de 25 años.

El software de MySQL es de código abierto

MySQL es de código abierto, lo que significa que está disponible para su uso sin costo según las condiciones de la Licencia Pública General de GNU. Esto también significa que cualquier persona puede modificar el código fuente del software para su propio uso. Esto llevó a la bifurcación de MySQL a otras variantes de la base de datos como MariaDB y Percona Server para MySQL. MySQL también está disponible bajo otras licencias para uso comercial.

Base de datos relacional

MySQL pertenece a una categoría de bases de datos, llamadas sistemas de administración de bases de datos relacionales (RDBMS). Una base de datos relacional es una colección de información que organiza datos en relaciones predefinidas, en la que los datos se almacenan en una o más tablas (o "relaciones") de columnas y filas, lo que facilita la visualización y la comprensión de cómo se relacionan las diferentes estructuras de datos entre sí. Las relaciones son conexiones lógicas entre las diferentes tablas y se establecen a partir de la interacción entre ellas.

Historial

MySQL se creó como una extensión del lenguaje de programación comercial, SQL, que se basó en el modelo relacional descrito en el artículo 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 de estructura (SQL). Sun Microsystems adquirió MySQL AB en 2008. En la actualidad, MySQL es propiedad de Oracle Corporation después de la adquisición de Sun Microsystems en 2010.

MySQL se desarrolló originalmente en los lenguajes de programación C y C++ y ha gozado de gran popularidad por sus numerosas versiones en los últimos años gracias a su disponibilidad en muchos sistemas operativos de código abierto y propios. La versión más reciente de la base de datos, MySQL 8.0, se lanzó en 2018.

Bifurcaciones

El proyecto de MySQL se bifurcó muchas veces a lo largo de los años debido a varios motivos, y algunas de esas bifurcaciones ya no existen. De los proyectos bifurcados restantes, los más populares son MariaDB y Percona Server para MySQL. Los fundadores originales de MySQL bifurcaron MariaDB para asegurarse de que MySQL siga siendo de código abierto después de que surgieran preocupaciones sobre su comercialización a raíz de la adquisición de Oracle. Percona Server para MySQL es otra distribución de código abierto de MySQL que tiene como objetivo mantener una compatibilidad cercana con MySQL. Obtén 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 gráfica de usuario (GUI) o herramientas de la interfaz de línea de comandos. 

Interfaz gráfica de usuario (GUI)

Las GUI proporcionan un entorno integrado con botones y widgets de interacción que hacen que la búsqueda y el desarrollo de aplicaciones sean una experiencia visual, en lugar de usar comandos basados en texto en una interfaz de línea de comandos. Hay muchas GUI de MySQL desarrolladas por el proyecto de código abierto de MySQL y los integradores de terceros. Una de las más populares es MySQL Workbench, que también es de código abierto y se desarrolló mediante MySQL AB. Algunas otras GUI conocidas son phpMyAdmin, una herramienta de administración popular para el desarrollo de aplicaciones web, y HeidiSQL, una Herramienta de administración de código abierto que se puede usar para administrar otras bases de datos además de MySQL.

Línea de comandos

MySQL también es accesible mediante las herramientas de línea de comandos. Estas herramientas, también conocidas como utilidades de MySQL, se distribuyen con MySQL y se invocan con comandos de texto en el shell de MySQL o en otras herramientas de interfaz de línea de comandos, como el kit de herramientas de Percona.

Implementa MySQL

Un usuario puede implementar MySQL de forma manual en su propia máquina física mediante el código abierto. También se puede implementar mediante la descarga de una de las distribuciones empaquetadas. MySQL se instala con más frecuencia en una sola instancia o máquina con escalamiento 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 tienen la capacidad de ascender a principal en caso de una falla de la instancia.

Otra forma cada vez más popular de alojar MySQL es a través de los proveedores de servicios en la nube (CSP). Existen varias formas de implementar MySQL en el entorno de un proveedor de servicios en la nube. Una es instalar MySQL directamente en una máquina virtual y autoadministrarla. El otro es el uso de ofertas administradas de proveedores de servicios en la nube que facilitan mucho más la administración de MySQL, ya que se encarga de muchos aspectos operativos de la administración de MySQL. Google Cloud ofrece un servicio administrado en forma de Cloud SQL. Cloud SQL para MySQL es un servicio de base de datos completamente administrado que te ayuda a configurar, mantener y administrar tus bases de datos relacionales de MySQL en Google Cloud, que reduce el trabajo repetitivo de los administradores de bases de datos y ayuda a las organizaciones a innovar mediante la oferta de servicios de valor agregado en torno a la seguridad, la alta disponibilidad y la observabilidad. Obtén más información sobre cómo 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 local o desde otra base de datos en un proveedor de servicios en la nube es muy fácil y simple, con muchas herramientas y opciones disponibles para el usuario.

Para conocer las ventajas y las diferencias de la oferta completamente administrada de Cloud SQL para MySQL y MySQL autoadministrado, consulta el artículo sobre las opciones de hosting de MySQL.

Beneficios de MySQL

MySQL es rápido, confiable, escalable y fácil de usar. MySQL puede ejecutarse cómodamente en una computadora de escritorio o laptop, junto con tus otras aplicaciones, servidores web, etc., y requiere poca o nula atención. Si dedicas una máquina completa a MySQL, puedes ajustar la configuración para aprovechar toda la memoria, la potencia de CPU y la capacidad de E/S disponibles. MySQL también puede escalar verticalmente a clústeres de máquinas, conectados en red.

Estas son algunas ventajas de usar MySQL para administrar y almacenar tus datos:

Alta disponibilidad

La alta disponibilidad (HA) en MySQL se refiere a la capacidad del motor de base de datos para funcionar por un período prolongado sin fallas. La configuración de HA en MySQL puede ser bastante compleja y depende de los requisitos de disponibilidad particulares de cada usuario y de la forma en la que se implementa MySQL. Para configurar la alta disponibilidad en MySQL, los usuarios deberían preocuparse por la replicación de los datos, la detección de fallas, los mecanismos de conmutación por error y 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 hace que la alta disponibilidad sea un proceso simple y fácil. Obtén más información sobre la alta disponibilidad de MySQL en Google Compute Engine o la experiencia completamente administrada y de alta disponibilidad de Cloud SQL para MySQL.

Seguridad

Las consideraciones de seguridad de MySQL pueden abarcar una gran variedad de factores. Algunos importantes son sobre la protección de datos, como la protección de datos contra daños mediante mecanismos de redundancia de datos y procesos de seguridad generales como contraseñas y privilegios, control de acceso y seguridad de red. Obtén más información sobre la seguridad en Cloud SQL para MySQL, la oferta de MySQL completamente administrada de Google Cloud.

Copia de seguridad y restablecimiento

MySQL admite la copia de seguridad y la recuperación de datos a través de varios mecanismos, incluidas herramientas de terceros. Algunas de las formas de crear copias de seguridad de MySQL y restablecerlas son a través de la utilidad mysqldump, las copias de seguridad incrementales que usan registros binarios y el uso de la replicación. Cloud SQL para MySQL ofrece sus propias funciones de copia de seguridad y restablecimiento, lo que permite realizar copias de seguridad automáticas o a pedido. Puedes obtener más información al respecto.

Flexibilidad

Es fácil agregar, actualizar o borrar tablas y relaciones, y hacer otros cambios a los datos cuando lo necesites sin cambiar la estructura general de la base de datos ni afectar las aplicaciones existentes.

Facilidad de uso

Es fácil ejecutar consultas complejas con SQL, lo que permite a los usuarios principiantes interactuar con la base de datos de forma intuitiva.

Rendimiento

La optimización del rendimiento es un aspecto fundamental de la administración de cualquier base de datos. MySQL facilita el desarrollo de aplicaciones de alto rendimiento, ya que proporciona muchas características y opciones de ajuste. Obtén más información sobre estas funciones en este artículo sobre las sugerencias de optimización del rendimiento para MySQL. En este otro artículo sobre el ajuste de consultas, también se proporcionan prácticas recomendadas específicas para el rendimiento.

MySQL es compatible con las propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad), que garantizan la validez de los datos sin importar los errores, las fallas ni otros posibles errores.

Casos de uso

Debido a su versatilidad, MySQL puede usarse para muchos casos prácticos diferentes. A continuación, le indicamos algunas de ellas para que puedas explorar con más detalle.

Aplicaciones web

MySQL es una parte esencial de muchas aplicaciones web que se compilan hoy en día 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 compilar aplicaciones web dinámicas que necesitan recuperar información actualizada de una base de datos como MySQL. La información puede incluir cuentas de usuario, detalles de usuarios, nombres de productos, registros de clientes, ventas y mucho más. Con SQL, los usuarios pueden acceder y manipular con facilidad la información almacenada en la base de datos. Para obtener más información, consulta LAMP y cómo usarlo para compilar aplicaciones web.

Procesamiento de transacciones en línea

En la actualidad, muchas aplicaciones requieren una base de datos, como MySQL, que puede manejar con rapidez una gran cantidad de transacciones de base de datos de una gran cantidad de personas. Las bases de datos OLTP, como MySQL, son la base de muchas transacciones web diarias, incluidas las transacciones financieras, las reservas de viajes, la conservación de registros y mucho más. Para admitir casos prácticos de procesamiento de transacciones en línea, MySQL cumple con los principios de ACID, compatibilidad con XML y JSON, procedimientos almacenados, agrupamiento en clústeres y partición. También proporciona la opción de seleccionar entre varios motores de almacenamiento, lo que te brinda la flexibilidad de integrar datos de una variedad de tipos de tablas.

Comercio electrónico

MySQL es una base de datos popular para aplicaciones de comercio electrónico que requieren administrar usuarios, información de consumidores, datos financieros y analizar tendencias a fin de evitar actividades fraudulentas. Una base de datos relacional, como MySQL, se puede usar para organizar la información en tablas (productos, clientes, pedidos) y se pueden agregar tablas adicionales según sea necesario. Algunas de las organizaciones más grandes del mundo, como Airbnb, Uber, Netflix, Booking.com, eBay y Spotify, usan MySQL para potenciar sus aplicaciones de comercio electrónico. MySQL también se puede implementar en una implementación híbrida para admitir todos los casos prácticos de comercio electrónico. MySQL se puede usar como una base de datos relacional para datos estructurados y una no relacional para datos no estructurados, como detalles del producto o información de marketing. 

Aplicaciones de SaaS

Las aplicaciones de SaaS suelen funcionar las 24 horas, todos los días, por lo que requieren un tiempo de inactividad mínimo, seguridad y la capacidad de escalar a medida que cambian las necesidades. MySQL surgió como una opción de base de datos popular para compilar aplicaciones SaaS, ya que es fácil de implementar, administrar y escalar. Como es de código abierto, los desarrolladores pueden comenzar con rapidez sin tener que pagar tarifas de licencia por software de propiedad exclusiva. La comunidad global de MySQL está activa y contribuyó a los complementos que proporcionan capacidades adicionales.

Administración de contenido

MySQL es una opción de base de datos popular para los sistemas de administración de contenido (CMS), como WordPress y Drupal. Los CMS almacenan publicaciones, páginas, imágenes, comentarios, categorías, etiquetas, campos personalizados, usuarios y otras opciones de configuración en la base de datos de MySQL. Debido a que los CMS suelen tener miles o incluso millones de cuentas por día, MySQL puede manejar tablas grandes y consultas múltiples a la vez. A medida que tu público crece, MySQL puede escalar de manera horizontal o vertical para satisfacer tus necesidades empresariales. 

Redes sociales

Un aspecto importante de las aplicaciones de redes sociales es la necesidad de conexión entre varios almacenes de datos, como usuarios, grupos y comentarios. Este tipo de caso práctico conduce a la preferencia de bases de datos relacionales para aplicaciones de redes sociales, y MySQL es la mejor opción. Algunos ejemplos destacados son Twitter, Pinterest y LinkedIn.

¿Todo listo para probar MySQL?

Google Cloud tiene una oferta completamente administrada de MySQL, Cloud SQL para MySQL
Más información sobre Cloud SQL

Descubre cómo Cloud SQL para MySQL te ayuda a innovar. Ver la documentación

Google Cloud ofrece una base de datos administrada de MySQL que se adapta a las necesidades de tu empresa, desde la eliminación de tu centro de datos local hasta la ejecución de aplicaciones SaaS y la migración de los sistemas empresariales principales.