J'y ai également plongé et bien que je sois de loin la référence en la matière, il y a quelques faits clés que j'ai rassemblés et des points que j'aimerais partager:
Une partition est une division d'une base de données logique ou de ses éléments constitutifs en parties indépendantes distinctes. Le partitionnement de la base de données est normalement effectué pour des raisons de gestion, de performances ou de disponibilité, comme pour l'équilibrage de charge.
https://en.wikipedia.org/wiki/Partition_(database)
Le partage est un type de partitionnement, tel que le partitionnement horizontal (HP)
Il existe également le partitionnement vertical (VP) dans lequel vous divisez une table en parties distinctes plus petites. La normalisation implique également cette division des colonnes entre les tables, mais le partitionnement vertical va au-delà et partitionne les colonnes même lorsqu'elles sont déjà normalisées.
https://en.wikipedia.org/wiki/Shard_(database_architecture)
J'aime beaucoup la réponse de Tony Baco sur Quora où il vous fait penser en termes de schéma (plutôt que de colonnes et de lignes). Il affirme que...
Le « partitionnement horizontal », ou partitionnement, consiste à répliquer [copier] le schéma, puis à diviser les données en fonction d'une clé de partition .
Le « partitionnement vertical » consiste à diviser le schéma (et les données accompagnent le trajet).
https://www.quora.com/Whats-the-difference-between-sharding-DB-tables-and-partitioning-them
Le guide de partitionnement de la base de données d'Oracle a quelques chiffres intéressants. J'ai copié quelques extraits de l'article.
https://docs.oracle.com/cd/B28359_01/server.111/b32024/partition.htm
Quand partitionner une table
Voici quelques suggestions pour partitionner une table:
- Les tables supérieures à 2 Go doivent toujours être considérées comme des candidats au partitionnement.
- Tables contenant des données historiques, dans lesquelles de nouvelles données sont ajoutées dans la partition la plus récente. Un exemple typique est un tableau historique où seules les données du mois en cours peuvent être mises à jour et les 11 autres mois sont en lecture seule.
- Lorsque le contenu d'une table doit être réparti sur différents types de périphériques de stockage.
Élagage de partition
L'élagage de partition est le moyen le plus simple et le plus important d'améliorer les performances à l'aide du partitionnement. L'élagage des partitions peut souvent améliorer les performances des requêtes de plusieurs ordres de grandeur. Par exemple, supposons qu'une application contienne une table Commandes contenant un enregistrement historique des commandes et que cette table ait été partitionnée par semaine. Une requête demandant des commandes pour une seule semaine n'accéderait qu'à une seule partition de la table Commandes. Si la table Orders contenait 2 ans de données historiques, cette requête accèderait à une partition au lieu de 104 partitions. Cette requête pourrait potentiellement s'exécuter 100 fois plus rapidement simplement en raison de l'élagage de partition.
Stratégies de partitionnement
Vous pouvez lire leur texte et visualiser leurs images qui expliquent assez bien tout.
Et enfin, il est important de comprendre que les bases de données sont extrêmement gourmandes en ressources:
De nombreux DBA partitionneront sur la même machine, où les partitions partageront toutes les ressources mais fourniront une amélioration du disque et des E / S en fractionnant les données et / ou l'index.
Tandis que d'autres stratégies emploieront une architecture «sans partage» où les fragments résideront sur des unités de calcul séparées et distinctes (nœuds), ayant 100% du processeur, du disque, des E / S et de la mémoire pour eux-mêmes. Fournir son propre ensemble d'avantages et de complexités.
https://en.wikipedia.org/wiki/Shared_nothing_architecture