Saltar al contenido
uencoder

Base de datos Sharding y Partitioning Referencia

Referencia para horizontal sharding, vertical partitioning, y distributed base de datos strategies.

Partitioning Strategies

Horizontal partitioning (sharding) splits rows across nodes by a shard key. Vertical partitioning splits columns (e.g., hot columns separate from cold). Range partitioning assigns by key ranges (e.g., date ranges). Hash partitioning distributes by hash(key) for even distribution. List partitioning assigns by explicit key values. Composite partitioning combines strategies (e.g., hash then range). The shard key choice is critical and hard to change later. Cross-shard queries are expensive; design for shard-local access.

horizontal
Split rows
sharding
hash
Even distribution
hash(key) % N
range
Key ranges
date-based

Sharding Challenges

Distributed joins across shards are expensive or impossible. Distributed transactions require 2PC or Saga patterns. Rebalancing (adding/removing shards) requires data migration. Hotspots occur if shard key is uneven (e.g., all traffic to one shard). Secondary indexes are per-shard; global indexes add overhead. Consistency varies: strong (spanner, CockroachDB) vs eventual (Cassandra). Connection routing requires a shard-aware proxy or driver. Sharding is a last resort after vertical scaling, read replicas, and caching. Vitess, Citus, and CockroachDB provide sharding solutions.

cross-shard
Expensive joins
avoid
rebalance
Data migration
expensive
hotspot
Uneven distribution
bad shard key

Herramientas relacionadas

参考链接