Database Strategy

Database Strategy

Database Strategy: blog técnico sobre Oracle, PostgreSQL, MySQL, data warehouse y project management. Artículos prácticos de 30 años de consultoría IT.

La diferencia entre un sistema que funciona
y uno que realmente impulsa el negocio no es suerte.

Es comprensión profunda de los planes de ejecución.
Es control de privilegios y seguridad de los datos.
Es modelado de datos alineado con los objetivos empresariales.
Es rendimiento que se mantiene cuando la carga aumenta.

Las bases de datos son el núcleo operativo del ecosistema digital de cualquier empresa.
Sostienen procesos críticos, habilitan decisiones basadas en datos y determinan la velocidad y eficiencia operativa.

Dentro del Motor es el espacio donde analizo lo que ocurre bajo el capó de PostgreSQL, Oracle y MySQL: performance tuning, seguridad, arquitectura y decisiones técnicas aplicables en entornos reales.

Porque en el mundo data-driven actual, las bases de datos no son simples componentes de software.
Son activos estratégicos que influyen en la competitividad, la fiabilidad y el crecimiento sostenible.

Últimos artículos

5 reglas que he visto funcionar en los equipos de proyecto que aguantan
Project Management

5 reglas que he visto funcionar en los equipos de proyecto que aguantan

Gestión de proyectos: 5 reglas observadas en equipos que aguantan bajo presión. Psychological safety, bus factor, outcome vs output, knowledge transfer.

Tres data marts, tres verdades sobre las ventas: el bus matrix como terreno común
Data Warehouse

Tres data marts, tres verdades sobre las ventas: el bus matrix como terreno común

Bus matrix de Kimball para alinear data marts aislados: conformed dimensions, procesos de negocio y ventas comparables. Caso real grupo asegurador.

Antes de actualizar MySQL: las cifras que el cliente te pide y cómo encontrarlas de verdad
MySQL

Antes de actualizar MySQL: las cifras que el cliente te pide y cómo encontrarlas de verdad

MySQL 8.0 pre-upgrade assessment: medir tamaños, crecimiento, tiempos de backup y restore con information_schema. Cifras reales para planificar.

Oracle de on-premises a cloud: estrategia, planificación y cutover
Oracle

Oracle de on-premises a cloud: estrategia, planificación y cutover

Migración Oracle 19c on-premises a OCI: 2 TB con RAC y Data Guard. Licensing BYOL, Data Pump, cutover nocturno — crónica real.

pg_stat_statements: lo primero que instalar en cualquier PostgreSQL
PostgreSQL

pg_stat_statements: lo primero que instalar en cualquier PostgreSQL

PostgreSQL pg_stat_statements: la extensión de diagnóstico de queries a instalar primero. Encontrar las tres queries que consumen el 80%.

mysqldump vs mysqlpump vs mydumper: el backup que no te deja dormir
MySQL

mysqldump vs mysqlpump vs mydumper: el backup que no te deja dormir

Backup MySQL: mysqldump vs mydumper vs mysqlpump en base de datos de 60 GB. Tiempos reales de dump y restore, paralelismo y decisión arquitectónica.

Partitioning en el DWH: cuando 3 años de datos pesan demasiado
Data Warehouse

Partitioning en el DWH: cuando 3 años de datos pesan demasiado

Range partitioning en fact table de 800M filas: de queries trimestrales de 12 minutos a 40 segundos. Implementación mensual, exchange e índices locales.

Binary log en MySQL: qué son, cómo gestionarlos y cuándo puedes borrarlos
MySQL

Binary log en MySQL: qué son, cómo gestionarlos y cuándo puedes borrarlos

MySQL binary log: gestión, retención y point-in-time recovery. Caso real de servidor con disco al 95% y 180 GB de binlog en seis meses.

VACUUM y autovacuum: por qué PostgreSQL necesita que alguien limpie
PostgreSQL

VACUUM y autovacuum: por qué PostgreSQL necesita que alguien limpie

PostgreSQL VACUUM y autovacuum: diagnóstico de bloat en base de datos de 200 GB, lectura de pg_stat_user_tables y tuning sin desactivar nada.

AI Manager y Project Management: cuando la inteligencia artificial entra en los proyectos
Project Management

AI Manager y Project Management: cuando la inteligencia artificial entra en los proyectos

AI Manager: el rol que gobierna el impacto de la inteligencia artificial sobre arquitecturas, procesos y personas. Reflexiones desde 30 años en IT.

Pagos a 60-90-120 días: la normalidad italiana que no existe en Europa
Project Management

Pagos a 60-90-120 días: la normalidad italiana que no existe en Europa

Pagos a 60-90-120 días en consultoría IT italiana: comparación con las reglas europeas. DSO, directiva 2011/7/UE y estrategias para freelancers IT.

Bici vs Coche en Roma: la mañana que me abrió los ojos
Project Management

Bici vs Coche en Roma: la mañana que me abrió los ojos

Pendolarismo en Roma: Brompton eléctrica vs coche. 18 minutos vs 50, 35€ de aparcamiento ahorrados. La elección de movilidad sostenible, datos reales.

Smart working en consultoría IT: los números que nadie quiere mirar
Project Management

Smart working en consultoría IT: los números que nadie quiere mirar

Smart working en consultoría IT: análisis económico y estratégico del trabajo remoto. Números reales, KPIs, presenteísmo y productividad vs oficina.

Oracle en Linux: los parámetros del kernel que nadie configura
Oracle

Oracle en Linux: los parámetros del kernel que nadie configura

Oracle 19c en Linux: tuning del kernel para rendimiento real. Huge Pages, THP, swappiness, I/O scheduler, ulimit — números antes/después.

Galera Cluster con 3 nodos: cómo resolví un incidente de disponibilidad en MySQL
MySQL

Galera Cluster con 3 nodos: cómo resolví un incidente de disponibilidad en MySQL

MySQL Galera Cluster de 3 nodos para alta disponibilidad: replicación síncrona, quórum, SST/IST. Configuración contra el single point of failure.

Roles y usuarios en PostgreSQL: por qué todo es (solo) un ROLE
PostgreSQL

Roles y usuarios en PostgreSQL: por qué todo es (solo) un ROLE

PostgreSQL ROLE: usuarios y roles son el mismo objeto. Modelo mental, GRANT, NOINHERIT y construir un usuario read-only realmente mantenible.

AWR, ASH y los 10 minutos que salvaron un go-live
Oracle

AWR, ASH y los 10 minutos que salvaron un go-live

Tuning Oracle 19c con AWR y ASH: encontrar un full table scan oculto en un procedimiento almacenado en 10 minutos, antes de un go-live.

Cuando el caos se convierte en método: AI y GitHub para gestionar un proyecto que nadie quería tocar
Project Management

Cuando el caos se convierte en método: AI y GitHub para gestionar un proyecto que nadie quería tocar

Gestión de proyectos con AI y GitHub: transformar un proyecto caótico en workflow medible con issue tracking, code review e inteligencia artificial.

Usuarios, roles y privilegios en Oracle: por qué GRANT ALL nunca es la respuesta
Oracle

Usuarios, roles y privilegios en Oracle: por qué GRANT ALL nunca es la respuesta

Seguridad Oracle: rediseño del modelo GRANT con roles personalizados y Unified Audit, aplicando el mínimo privilegio. Caso real con SQL listo.

Standup meeting: por qué solo funcionan si duran 15 minutos
Project Management

Standup meeting: por qué solo funcionan si duran 15 minutos

Standup meeting Scrum: por qué solo los 15 minutos los hacen funcionar. Timeboxing, parking lot y reglas prácticas del daily meeting que aguantan.

Jerarquías desbalanceadas: cuando el cliente no tiene padre y el grupo no tiene abuelo
Data Warehouse

Jerarquías desbalanceadas: cuando el cliente no tiene padre y el grupo no tiene abuelo

Ragged hierarchy en data warehouse: balanceo de jerarquías desbalanceadas con la técnica de self-parenting. Drill-down correcto en clientes y grupos.

Usuarios MySQL: por qué 'mario' y 'mario'@'localhost' no son la misma persona
MySQL

Usuarios MySQL: por qué 'mario' y 'mario'@'localhost' no son la misma persona

MySQL usuarios y hosts: 'mario' y 'mario'@'localhost' son entidades distintas. Modelo de autenticación MySQL/MariaDB, errores comunes y GRANTs.

La técnica del Sí-Y: cómo evité una discusión que estaba a punto de estallar
Project Management

La técnica del Sí-Y: cómo evité una discusión que estaba a punto de estallar

La técnica Yes-And del teatro de improvisación aplicada a la gestión de conflictos en equipos IT. Caso real de una reunión que iba a estallar.

Cuando un LIKE '%valor%' ralentiza todo: un caso real de optimización PostgreSQL
PostgreSQL

Cuando un LIKE '%valor%' ralentiza todo: un caso real de optimización PostgreSQL

Optimización PostgreSQL: LIKE '%valor%' genera full scan. Uso de pg_trgm e índice GIN para convertir una búsqueda wildcard en lookup rápido.

4 millones de euros, dos multinacionales, cero software: historia real de un fracaso anunciado
Project Management

4 millones de euros, dos multinacionales, cero software: historia real de un fracaso anunciado

Caso real de gestión de proyectos: cliente asegurador gasta 4 millones en consultoría IT y obtiene cero software funcionando. Lecciones vendor lock-in.

Oracle Partitioning: cuando 2 mil millones de filas ya no caben en una query
Oracle

Oracle Partitioning: cuando 2 mil millones de filas ya no caben en una query

Oracle Partitioning en tabla de 2 mil millones de filas: range, interval, partition pruning, índices locales. De horas a segundos.

De single instance a Data Guard: el día en que el CEO entendió el DR
Oracle

De single instance a Data Guard: el día en que el CEO entendió el DR

Oracle Data Guard 19c: migración desde single instance tras una caída de 6 horas. Arquitectura DR, primary/standby, switchover automático.

SCD Tipo 2: la historia que el negocio no sabía que necesitaba
Data Warehouse

SCD Tipo 2: la historia que el negocio no sabía que necesitaba

SCD Tipo 2 en data warehouse: historizar dimensiones con claves subrogadas y fechas de validez. Caso real: dimensión clientes que evoluciona en el tiempo.

MySQL multi-instancia: un ticket, un CSV y el muro de secure-file-priv
MySQL

MySQL multi-instancia: un ticket, un CSV y el muro de secure-file-priv

MySQL multi-instancia en Linux: exportar un CSV con INTO OUTFILE bloqueado por secure-file-priv. Conexión por socket Unix y workaround desde shell.

EXPLAIN ANALYZE no basta: como leer realmente un plan de ejecucion PostgreSQL
PostgreSQL

EXPLAIN ANALYZE no basta: como leer realmente un plan de ejecucion PostgreSQL

PostgreSQL EXPLAIN ANALYZE: leer un plan de ejecución, detectar nested loop costosos y ANALYZE sobre estadísticas viejas. Caso real con 2M filas.

Granularidad equivocada: cuando la fact table no responde las preguntas correctas
Data Warehouse

Granularidad equivocada: cuando la fact table no responde las preguntas correctas

Data warehouse: la granularidad de la fact table determina qué preguntas puedes responder. Errores frecuentes y su impacto en el modelo dimensional.

Disco lleno en un cluster MySQL: binary logs, Group Replication y una migración que no admite errores
MySQL

Disco lleno en un cluster MySQL: binary logs, Group Replication y una migración que no admite errores

MySQL Group Replication de 3 nodos: migración de binary logs a un volumen dedicado sin perder el quórum. Caso real con filesystem al 92%.