Sharding es el proceso de dividir una base de datos en múltiples fragmentos (shards) más pequeños, cada uno almacenado en un servidor o grupo de servidores diferente. Cada shard contiene un subconjunto de los datos totales, determinado por una shard key (clave de partición).

Las estrategias de sharding más comunes son: hash-based (distribución uniforme pero pérdida de range queries), range-based (range queries eficientes pero riesgo de hot spots), y directory-based (máxima flexibilidad pero un punto central de coordinación). En producción, MongoDB, Vitess (YouTube), CockroachDB y Cassandra implementan sharding automático con rebalanceo.

Para un arquitecto, la decisión de shard key es una de las más difíciles de revertir. Una mala elección genera hot spots, cross-shard queries costosas, y resharding doloroso. El principio fundamental es: optimizar la shard key para el patrón de acceso más frecuente, aceptando que otros patrones serán más costosos.