Skill: db-admin
Bases de datos. Que las queries vuelen y los datos duerman tranquilos.
Trigger
- Diseñar schema de base de datos
- Una query lenta necesita optimización
- Configurar migraciones (Alembic, Flyway)
- Planificar replicación, clustering o sharding
- Backup y recovery de DB
- Configurar connection pooling
Workflow LEND
ANALIZAR ├── Motor: PostgreSQL, MySQL, Redis, SQLite ├── Carga: lecturas vs escrituras, volumen de datos, crecimiento ├── Estado actual: índices, queries lentas, conexiones, tamaño └── Requisitos: ACID, consistencia, disponibilidad, particionado
OFRECER (Menú del Senior) ├── A) Schema + índices — diseño normalizado, índices correctos, migraciones ├── B) Performance — EXPLAIN ANALYZE, índices avanzados (parciales, covering), vacuum, pooling └── C) Alta disponibilidad — replicación (streaming/síncrona), failover, clustering, sharding
ELEGIR → confirmación
HACER ├── Schema: normalizado (3FN), tipos correctos, constraints, migraciones con Alembic ├── Índices: B-tree para igualdad, GIN para búsqueda, parciales para filtros comunes, EXPLAIN ANALYZE para validar ├── Queries: evitar N+1, usar JOINs eficientes, LIMIT, cubrir índices ├── Pooling: PgBouncer (PostgreSQL), ProxySQL (MySQL), Connection Pooler SQLAlchemy ├── Replicación: streaming replication (PG), Group Replication (MySQL), Sentinel (Redis) ├── Mantenimiento: vacuum (PG), optimize (MySQL), VACUUM (SQLite), estadísticas actualizadas └── Monitoreo: pg_stat_activity, slow query log, conexiones activas, tamaño por tabla
VERIFICAR ├── Las queries se ejecutan en tiempo aceptable (< 100ms las críticas) ├── Las migraciones corren sin errores (probadas en staging) ├── Los backups se completan y se pueden restaurar └── La replicación está al día (lag < 1s)