Chiave di sharding Shard key
La colonna che decide su quale shard (nodo) finisce una riga in un database partizionato orizzontalmente. Sceglierla è una delle decisioni più importanti, e più difficili da cambiare, di un database distribuito.
Il valore della chiave viene sottoposto a hash o mappato su intervalli, e questo determina lo shard. L'obiettivo è duplice: distribuire i dati in modo uniforme e fare in modo che le query più frequenti colpiscano un solo shard, evitando costose query «cross-shard». Le trappole classiche: una chiave sbagliata crea hotspot (un solo shard riceve tutto il traffico, ad esempio sharding per data quando il traffico nuovo è sempre «oggi») oppure obbliga a interrogare tutti gli shard (scatter-gather). Una buona chiave ha alta cardinalità, accessi uniformi e rispecchia i modelli di query (ad esempio l'ID del tenant in un sistema multi-tenant). Cambiarla a posteriori richiede spesso un resharding completo. Concetti collegati: sharding per hash o per intervallo e co-location (righe correlate sullo stesso shard). È centrale in Vitess, Citus, MongoDB e DynamoDB.