¿Qué es MySQL? ¿Cómo funciona MySQL?


MySQL es el sistema de gestión de bases de datos relacionales de código abierto (RDBMS) de nivel empresarial más popular del mundo que se utiliza en Facebook, Google, Adobe, Alcatel Lucent y Zappos, y en muchos sitios web/aplicaciones en línea.

Está desarrollado, distribuido y respaldado por Oracle Corporation. Es una base de datos relacional multiplataforma, potente, flexible y extensible que se basa en el lenguaje estandarizado SQL (Structured Query Language) que se utiliza para crear y manipular bases de datos.

La última versión de MySQL (versión 8.0 en el momento de escribir este artículo) viene con soporte para bases de datos de documentos NoSQL ("No solo SQL"). Se puede instalar en Linux, macOS y otros sistemas operativos similares a UNIX y Windows.

  • Download MySQL Community Edition
  • Download MySQL Enterprise Edition

El software de la base de datos MySQL es de código abierto, utiliza la GPL (Licencia pública general GNU). Es importante destacar que se ofrece en dos ediciones diferentes: el servidor comunitario MySQL de código abierto que puede descargar, acceder al código fuente y usar de forma gratuita y la edición patentada MySQL Enterprise y otros productos comerciales que requieren suscripción anual e incluyen soporte profesional y muchos otros beneficios.

MySQL se utiliza para una amplia gama de propósitos, incluida la base de datos web (el uso más común), almacenamiento de datos, comercio electrónico y aplicaciones de registro. Es uno de los software comúnmente instalados para configurar una pila LAMP (Linux + Apache + MySQL + PHP) o LEMP (Linux + Engine-X + MySQL + PHP) utilizada para el desarrollo web y el alojamiento de sistemas de gestión de contenido en línea como WordPress, Magneto, Joomla, Drupal y muchos otros. Además de PHP, también es compatible con muchos otros lenguajes, incluidos Perl, Node.js, Python, etc.

Consulte estas guías relacionadas para configurar su aplicación con la base de datos MySQL en Linux.

¿Cómo funciona MySQL?

Como la mayoría de los sistemas de administración de bases de datos, MySQL tiene una arquitectura cliente-servidor y puede usarse en un entorno de red. El programa del servidor reside en el mismo sistema físico o virtual donde se almacenan los archivos de la base de datos y es responsable de todas las interacciones con las bases de datos.

Varios programas cliente, como las herramientas MySQL para la administración de bases de datos o cualquier aplicación que esté escrita en otros lenguajes de programación, pueden conectarse al servidor y realizar solicitudes de base de datos. El servidor procesa las solicitudes del cliente y devuelve los resultados al cliente.

Un cliente puede residir en el mismo sistema que el servidor o en un host remoto y enviar solicitudes de base de datos a través de una red o conexión a Internet al servidor. Es importante destacar que el servidor MySQL debe estar ejecutándose para que los clientes se conecten a él.

Características clave de MySQL

MySQL utiliza un diseño de servidor de varias capas con módulos independientes. El servidor es multiproceso, multiusuario, escalable y robusto diseñado para sistemas de producción de carga pesada y de misión crítica. Proporciona motores de almacenamiento transaccionales y no transaccionales y admite la adición de otros motores de almacenamiento.

  • MySQL uses very fast B-tree tables with index compression, a very fast thread-based memory allocation system, and executes very fast joins using optimized nested-loop join.
  • It supports many data types such as signed/unsigned integers, floating-point types(float and double), char and varchar, binary and varbinary, blob and text, Date, DateTime, and timestamp, year, set, enum, and OpenGIS spatial types.
  • MySQL also supports data redundancy, and high-availability (HA) via master-slave replication, multi-node clustering, and backup and recovery/restore. It offers a wide range of backup types and strategies from which you can choose the methods that best suit the requirements for your deployment.
  • Its security features include user account management and access control, host-based verification, encrypted connections, several components and plugins (such as authentication plugins, connection-control plugins, password-validation component and many more) that implement security, as well as FIPS (Federal Information Processing Standards 140-2 (FIPS 140-2)) mode on the server-side which applies to cryptographic operations performed by the server.

Además, también puede garantizar seguridad adicional siguiendo las mejores prácticas de seguridad de MySQL/MariaDB para Linux. Pero, como siempre, asegúrese de haber implementado una buena seguridad de red y servidor para garantizar la seguridad integral del servidor de bases de datos.

Cliente y herramientas MySQL

MySQL se envía con varios programas cliente, como las populares utilidades de línea de comandos: mysql, mysqladmin y mysqldump, para administrar bases de datos. Para conectarse al servidor MySQL, los clientes pueden utilizar varios protocolos, por ejemplo, sockets TCP/IP en cualquier plataforma o sockets de dominio UNIX en sistemas UNIX como Linux.

Para conectar y ejecutar declaraciones MySQL desde otro lenguaje o entorno, existen conectores MySQL basados u200bu200ben estándares (que brindan conectividad al servidor MySQL para aplicaciones cliente) y API para los lenguajes de programación más populares (para brindar acceso de bajo nivel a recursos MySQL usando ya sea el protocolo MySQL clásico o el Protocolo X).

Algunos de los conectores y API más populares incluyen ODBC (Conectividad de base de datos abierta), Java (JDBC - Conectividad de base de datos de Java), Python, PHP, Node.js, C ++, Perl, Ruby y C nativo e instancias de MySQL incrustadas.

Encontrará útiles los siguientes artículos sobre MySQL: