DBAtlas · Atlas de operaciones de bases de datos

Decisión: ¿sharding o replicación (escalado)?

La decisión de escalado de la base de datos depende de si el cuello de botella son las lecturas o las escrituras y de si los datos caben en un solo nodo. Una estrategia equivocada implica complejidad innecesaria o un cuello de botella sin resolver. Este árbol le recuerda primero las opciones más baratas y sencillas (escalado vertical, caché) y luego le ayuda a elegir correctamente entre réplicas de lectura y sharding.

¿Ha probado primero el camino más sencillo: escalado vertical y ajuste de consultas?

Antes de pasar a una arquitectura distribuida, obtenga la mejora más barata: ampliar el hardware (CPU/RAM/IOPS), añadir los índices que faltan y corregir las consultas costosas resuelve la mayoría de los cuellos de botella. Añada complejidad solo cuando estas opciones se agoten.

  • No / aún no he llegado al límite
  • Sí, el escalado vertical y el ajuste no bastan

¿El cuello de botella son las lecturas o las escrituras/el volumen de datos?

Aísle el origen del problema de escalado: ¿muchas consultas de lectura saturan un solo nodo (carga de lectura intensiva), o la tasa de escritura o el tamaño total de los datos superan la capacidad de un solo nodo (carga intensiva de escritura/volumen)? Esta distinción es la diferencia fundamental entre réplicas y sharding.

  • Domina el tráfico de lectura, las escrituras caben en un solo nodo
  • La tasa de escritura o el volumen de datos superan un solo nodo

¿Las lecturas son repetitivas/cacheables, o recientes y variadas?

Divida el cuello de botella de lectura un paso más: ¿se leen los mismos resultados una y otra vez (una caché es muy eficaz), o las lecturas piden datos variados, amplios y actuales (se necesita capacidad de lectura adicional)? Esto decide entre una capa de caché y réplicas de lectura.

  • Los mismos datos se leen repetidamente, es aceptable un ligero desfase
  • Lecturas variadas/recientes, se necesita capacidad de lectura bruta

Recomendación: primero escalado vertical + ajuste de consultas

El primer y más barato camino antes de pasar a una arquitectura distribuida. Ampliar el hardware y corregir consultas/índices resuelve la mayoría de los problemas de escalado sin añadir complejidad operativa.

Recomendación: réplicas de lectura (escalado de lectura)

Las escrituras permanecen en un solo nodo (el primario) mientras el tráfico de lectura se distribuye entre una o más réplicas. Es la forma estándar de aumentar la capacidad de lectura bruta y la resiliencia en cargas con lectura intensiva.

Recomendación: capa de caché

Mantener los resultados que se releen con frecuencia en una capa rápida en memoria reduce drásticamente la carga de la base de datos. Con el patrón adecuado responde sin ir a la base de datos, lo que reduce tanto la latencia como la carga.

Recomendación: sharding (escalado de escritura/datos)

Los datos se dividen por una shard key y se distribuyen entre varios nodos independientes; cada nodo es propietario de una porción de los datos y de sus escrituras. Es la forma de escalar la tasa de escritura y el volumen total de datos, pero añade una complejidad considerable.

Abrir en DBAtlas →