Skip to content

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

  1. Introduccion
  2. Modelo relacional, tipos y constraints
  3. Consultas, joins y agregaciones
  4. Indices y EXPLAIN
  5. Transacciones e InnoDB
  6. Usuarios, backup y restore
  7. Rendimiento y buenas practicas
  8. Arquitectura interna de InnoDB
  9. Locks, MVCC y niveles de aislamiento
  10. Binlog, replicacion y alta disponibilidad
  11. Particionado y tablas grandes
  12. Observabilidad y diagnostico
  13. MySQL en produccion
  14. 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:8

Conexion:

bash
mysql -h localhost -P 3306 -u root -p

Primeros 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 root desde aplicaciones.
  • Usa DECIMAL para importes.
  • Define primary keys y foreign keys.
  • Prueba restauraciones, no solo backups.

Recursos relacionados