Qué es MySql y cómo funciona en una web
Autor: Redacción Domeny.ForSale Publicado
En pocas palabras: MySQL es un sistema de gestión de bases de datos relacionales: un software que almacena información organizada y permite consultarla y modificarla. Lo utilizan, entre otros, sitios web, tiendas y aplicaciones, por ejemplo, para guardar entradas, cuentas de usuario o pedidos. MySQL no es un lenguaje de programación: para trabajar con los datos utiliza principalmente el lenguaje SQL.
¿Cómo almacena los datos MySQL?
Una base de datos relacional organiza la información en tablas. Cada tabla tiene columnas que definen el tipo de datos y filas que representan registros concretos, como los de los clientes. Las tablas pueden relacionarse mediante identificadores, en lugar de guardar la misma información varias veces.
En una tienda en línea, la tabla clientes puede contener un identificador, un nombre y una dirección de correo electrónico. La tabla pedidos almacena el número de pedido, el importe y el identificador del cliente. Esta relación permite encontrar todos los pedidos de una persona sin copiar sus datos en cada registro.
MySQL no se limita a almacenar datos. También controla los permisos, permite que varios usuarios trabajen simultáneamente y ejecuta consultas, es decir, instrucciones que recuperan o modifican datos. Los índices —estructuras auxiliares parecidas al índice de un libro— pueden acelerar las búsquedas sin tener que recorrer toda la tabla.
¿En qué se diferencia MySQL de SQL y de otras bases de datos?
SQL es un lenguaje de instrucciones, mientras que MySQL es el programa que las ejecuta. SQL sirve, entre otras cosas, para crear tablas, añadir registros y seleccionar información que cumpla determinadas condiciones. Otros sistemas de bases de datos también lo utilizan, aunque los detalles de la sintaxis y las funciones disponibles pueden variar.
Una consulta de ejemplo a la tabla de clientes sería así:
SELECT nombre, email
FROM clientes
WHERE ciudad = 'Kraków';
La instrucción lee los nombres y las direcciones de correo electrónico de los clientes cuyo campo ciudad contiene Kraków. No modifica los datos. En un sitio web típico, estas consultas las ejecuta el código de la aplicación, por lo que el propietario del sitio no tiene que introducirlas manualmente.
A veces se confunde MySQL con MariaDB. Son sistemas distintos con un origen común, compatibles en muchos usos, pero no idénticos. Antes de sustituir uno por otro, hay que comprobar los requisitos de la aplicación y la compatibilidad de las versiones concretas. PostgreSQL es otro sistema independiente, mientras que SQLite suele funcionar como una biblioteca que utiliza un archivo local, sin un servidor de bases de datos separado.
¿Para qué sirve MySQL en un sitio web?
MySQL suele almacenar los datos de un CMS, es decir, un sistema de gestión de contenidos. Un ejemplo es WordPress, que puede utilizar MySQL o MariaDB. En la base de datos guarda, entre otras cosas, el contenido de las entradas, los ajustes, los comentarios y la información de los usuarios.
Sin embargo, una base de datos no es lo mismo que el alojamiento ni que un sitio web completo. El alojamiento proporciona el entorno en el que funciona el sitio, y MySQL es uno de los servicios disponibles en ese entorno. El código de la aplicación, los temas y las fotos subidas suelen estar en archivos, aunque la base de datos puede guardar información sobre su ubicación.
Cuando alguien abre una entrada de un blog, la aplicación recupera su contenido de la base de datos y prepara la página para el navegador. Un mecanismo de caché puede reducir el número de estas lecturas. El navegador no suele conectarse directamente a MySQL: lo hace la aplicación que se ejecuta en el servidor.
No todos los sitios web necesitan una base de datos. Una página sencilla compuesta por archivos HTML ya preparados puede funcionar sin MySQL. La base de datos resulta útil cuando la información debe editarse o filtrarse regularmente, o cuando los usuarios necesitan guardar datos.
¿MySQL es gratuito y cómo empezar?
MySQL Community Edition está disponible sin coste de licencia bajo los términos de la licencia GPL. También existen ofertas comerciales de MySQL. Que esta edición no tenga coste de licencia no significa que su mantenimiento sea gratuito: puedes seguir pagando por el servidor, la administración, las copias de seguridad o un servicio gestionado.
Para poner en marcha una instalación habitual de WordPress en un alojamiento compartido, normalmente no hace falta instalar MySQL por tu cuenta. El instalador automático puede preparar la base de datos y la conexión. Si realizas la configuración manualmente, lo habitual es:
- Crear una base de datos en el panel del alojamiento.
- Crear un usuario de la base de datos y asignarle los permisos necesarios.
- Introducir en el instalador de la aplicación el nombre de la base de datos, el usuario, la contraseña y la dirección del servidor de la base de datos.
- Comprobar que el sitio funciona y cómo se realizan las copias de seguridad.
Para consultar las tablas y ejecutar consultas se suele utilizar phpMyAdmin, que es un panel de administración, no la base de datos en sí. Los cambios realizados desde él pueden afectar directamente al sitio web. Antes de editar los datos manualmente, crea una copia de seguridad que sepas restaurar.
¿Qué revisar al elegir un alojamiento con MySQL?
La indicación «compatible con MySQL» no basta para valorar una oferta. Consulta en la documentación de la aplicación qué versiones necesita y confirma con el proveedor de alojamiento qué sistema y qué versión ofrece realmente. Pregunta también por los límites de tamaño de las bases de datos, el número de conexiones simultáneas y la posibilidad de exportar los datos.
Las condiciones de las copias de seguridad son importantes: su frecuencia, el plazo de conservación y el procedimiento de restauración. Una copia que incluya solo los archivos de WordPress no contiene el contenido guardado en la base de datos, y una copia de la base de datos por sí sola no sustituye a las fotos y los demás archivos del sitio.
La seguridad también depende de la aplicación. Debe utilizar consultas parametrizadas, que separan los datos del usuario de las instrucciones SQL y ayudan a evitar la inyección de instrucciones maliciosas. Las credenciales de acceso a la base de datos no deben aparecer en el código público del sitio ni en un repositorio público.
Si vas a poner en marcha un CMS ya preparado, empieza por comprobar sus requisitos y si el alojamiento permite restaurar las copias de seguridad. Aprender SQL puede esperar; una conexión correcta y la posibilidad de recuperar los datos son necesarias desde el principio.
Consulta también: ¿Qué es 2FA?
