Sharding (Hashed vs Range)

MongoDB 🔴 Senior

Définition

Hashed sharding distribue les documents uniformément via un hash de la shard key (bon pour l'écriture). Range sharding les repartit par plages de valeurs (bon pour les requêtes par intervalle). Depuis MongoDB 8.3 (4 mai 2026), le retrait d'un shard ne passe plus par removeShard (dépréciée) mais par les commandes dédiées startShardDraining / shardDrainingStatus / commitShardRemoval.

Analogie

Hashed = distribuer les cartes au hasard entre les joueurs. Range = donner les cartes 1-10 au joueur 1, 11-20 au joueur 2.

Exemple de code

// Hashed
sh.shardCollection('db.users', { _id: 'hashed' });
// Range
sh.shardCollection('db.logs', { timestamp: 1 });

Cas d'usage

Hashed pour les écritures haute fréquence. Range pour les requêtes temporelles ou par intervalles.

#sgbd#interview#database#mongodb

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre