Glosario Técnico

Sharding

Definición: Tecnica de particionamiento horizontal de bases de datos que distribuye los datos entre multiples instancias para escalar la capacidad de almacenamiento y consulta.

— Fuente: NERVICO, Consultoría de Desarrollo de Producto

Que es sharding

Sharding es una tecnica de particionamiento horizontal de bases de datos que consiste en dividir un conjunto de datos grande en fragmentos mas pequenos llamados shards. Cada shard contiene un subconjunto de los datos totales y se aloja en una instancia de base de datos separada. Juntos, todos los shards forman el conjunto completo de datos. Es una de las estrategias fundamentales para escalar bases de datos mas alla de los limites de un unico servidor.

Como funciona

El sistema utiliza una clave de sharding (shard key) para determinar en que shard se almacena cada registro. Las estrategias mas comunes son sharding por rango (usuarios del 1 al 1,000,000 en shard A, del 1,000,001 al 2,000,000 en shard B), por hash (se aplica una funcion hash al ID para distribuir uniformemente) o por geografia (usuarios europeos en un shard, americanos en otro). Una capa de enrutamiento, ya sea en el cliente de la base de datos o en un proxy intermedio, dirige cada consulta al shard correcto basandose en la clave de sharding. Las consultas que afectan a un solo shard son eficientes, mientras que las consultas cross-shard (que necesitan datos de multiples shards) requieren coordinacion adicional y son mas costosas.

Por que importa

Cuando una base de datos alcanza los limites de un unico servidor (millones de escrituras por segundo, terabytes de datos, o consultas que degradan el rendimiento), el sharding es la principal estrategia para continuar escalando. Permite distribuir tanto la carga de lectura como la de escritura entre multiples servidores, algo que las replicas de lectura por si solas no consiguen. Sin embargo, el sharding anade complejidad significativa a la aplicacion y debe adoptarse cuando las alternativas mas simples (optimizacion de queries, indexacion, caching, replicas de lectura) ya no son suficientes.

Ejemplo practico

Una plataforma SaaS de analytics procesa 500 millones de eventos diarios. Su base de datos PostgreSQL en un unico servidor comienza a saturar CPU y disco. El equipo implementa sharding por tenant_id: los datos de cada cliente se almacenan en uno de los doce shards, distribuidos mediante una funcion hash. Las consultas de un tenant individual se resuelven en un unico shard con latencia baja. Los informes globales que cruzan datos de multiples tenants se ejecutan mediante consultas paralelas a todos los shards, agregando resultados en la aplicacion.

Terminos relacionados


Ultima actualizacion: Febrero 2026

¿Necesitas ayuda con desarrollo de producto?

Te ayudamos a acelerar tu desarrollo con tecnología puntera y mejores prácticas.