MySQL
MySQL es un sistema gestor de bases de datos relacional muy usado en aplicaciones web, APIs, CMS, sistemas internos y proyectos full stack. Su motor habitual es InnoDB, que aporta transacciones, claves foraneas, bloqueos por fila e indices B-Tree.
Capitulos
- Introduccion
- Modelo relacional, tipos y constraints
- Consultas, joins y agregaciones
- Indices y EXPLAIN
- Transacciones e InnoDB
- Usuarios, backup y restore
- Rendimiento y buenas practicas
- Arquitectura interna de InnoDB
- Locks, MVCC y niveles de aislamiento
- Binlog, replicacion y alta disponibilidad
- Particionado y tablas grandes
- Observabilidad y diagnostico
- MySQL en produccion
- Proyecto final
Instalacion con Docker
bash
docker run --name mysql-dev \
-e MYSQL_ROOT_PASSWORD=secret \
-e MYSQL_DATABASE=app_db \
-p 3306:3306 \
-d mysql:8Conexion:
bash
mysql -h localhost -P 3306 -u root -pPrimeros pasos
sql
CREATE DATABASE app_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_0900_ai_ci;
USE app_db;
CREATE TABLE productos (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(120) NOT NULL,
precio DECIMAL(10,2) NOT NULL,
stock INT NOT NULL DEFAULT 0
);
INSERT INTO productos (nombre, precio, stock)
VALUES ('Teclado', 49.99, 20);
SELECT id, nombre, precio
FROM productos
WHERE stock > 0;Cuando usar MySQL
- Aplicaciones web tradicionales.
- APIs con modelo relacional claro.
- WordPress, Laravel y ecosistemas PHP.
- Productos que necesitan SQL fiable y administracion sencilla.
- Servicios que encajan bien con InnoDB y replicas.
Buenas practicas iniciales
- Usa InnoDB salvo razon clara.
- Define charset
utf8mb4. - No uses
rootdesde aplicaciones. - Usa
DECIMALpara importes. - Define primary keys y foreign keys.
- Prueba restauraciones, no solo backups.
