Le découpage
Le découpage consiste à optimiser les systèmes de gestion de bases de données en séparant les lignes ou les colonnes d’une table de base de données plus grande en plusieurs tables plus petites. Les nouvelles tables sont appelées « partitions” (ou partitions), et chaque nouvelle table a soit le même schéma mais des lignes uniques (comme c’est le cas pour le « partage horizontal”), soit un schéma qui est un sous-ensemble approprié du schéma de la table d’origine (comme c’est le cas pour le « partage vertical”).
Pourquoi Le Sharding Est-Il Utilisé ?
Le sharding est un concept courant dans les architectures de bases de données évolutives. En découpant une table plus grande, vous pouvez stocker les nouveaux morceaux de données, appelés fragments logiques, sur plusieurs nœuds pour obtenir une évolutivité horizontale et des performances améliorées. Une fois que le fragment logique est stocké sur un autre nœud, il est appelé fragment physique.
Lors de l’exécution d’une base de données sur une seule machine, vous atteindrez éventuellement la limite de la quantité de ressources informatiques que vous pouvez appliquer à toutes les requêtes, et vous atteindrez évidemment un maximum de données avec lesquelles vous pourrez travailler efficacement. Grâce à une mise à l’échelle horizontale, vous pouvez activer une conception de base de données flexible qui augmente les performances de deux manières clés :
- Avec un traitement massivement parallèle, vous pouvez tirer parti de toutes les ressources de calcul de votre cluster pour chaque requête.
- Comme les fragments individuels sont plus petits que la table logique dans son ensemble, chaque machine doit analyser moins de lignes lorsqu’elle répond à une requête.
Le découpage horizontal est efficace lorsque les requêtes ont tendance à renvoyer un sous-ensemble de lignes souvent regroupées. Par exemple, les requêtes qui filtrent les données en fonction de plages de dates courtes sont idéales pour le partage horizontal, car la plage de dates limitera nécessairement l’interrogation à un sous-ensemble des serveurs.
Le découpage vertical est efficace lorsque les requêtes ont tendance à ne renvoyer qu’un sous-ensemble de colonnes des données. Par exemple, si certaines requêtes ne demandent que des noms et que d’autres ne demandent que des adresses, les noms et adresses peuvent être partagés sur des serveurs distincts.
En outre, les bases de données partagées peuvent offrir des niveaux de disponibilité plus élevés. En cas de panne sur une base de données non dégradée, l’application entière est inutilisable. Avec une base de données partagée, seules les parties de l’application qui reposaient sur les morceaux de données manquants sont inutilisables. En pratique, les bases de données partagées atténuent souvent davantage l’impact de telles pannes en répliquant des fragments de sauvegarde sur des nœuds supplémentaires.
Quelle est la différence entre le partage et le partitionnement ?
Le fractionnement et le partitionnement consistent tous deux à diviser un grand ensemble de données en sous-ensembles plus petits. La différence est que le partage implique que les données sont réparties sur plusieurs ordinateurs alors que le partitionnement ne le fait pas. Le partitionnement consiste à regrouper des sous-ensembles de données au sein d’une seule instance de base de données. Dans de nombreux cas, les termes sharding et partitionnement sont même utilisés comme synonymes, en particulier lorsqu’ils sont précédés des termes « horizontal » et « vertical. »Ainsi, « sharding horizontal » et « partitionnement horizontal” peuvent signifier la même chose.
Sujets connexes
Calcul en mémoire
Edge Computing
Grid Computing
Lectures supplémentaires
Hazelcast IMDG 3.12 Introduit le Sous-Système CP