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 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.
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.
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.
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.
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.
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.
Un usuario puede implementar MySQL de forma manual en su propia máquina física mediante el código fuente 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 otros parámetros 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.
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 de uso 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.
Descubre cómo Cloud SQL para MySQL te ayuda a innovar. Ver la documentación
Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.