La fragmentation est juste un autre nom pour "le partitionnement horizontal" d'une base de données. Vous pouvez effectuer une recherche pour ce terme pour obtenir plus clair.
De Wikipedia:
Le partitionnement Horizontal est un principe de conception en vertu de laquelle les lignes d'une table de base de données sont détenus séparément, plutôt que de fractionnement par des colonnes (comme pour la normalisation). Chaque partition fait partie d'un éclat, qui peut à son tour être situé sur un autre serveur de base de données ou d'emplacement physique. L'avantage est le nombre de lignes dans chaque table est réduite (ce qui réduit la taille de l'index, améliore ainsi les performances de recherche). Si la fragmentation est basé sur quelques aspects de les données (par exemple, les clients Européens contre les clients d'Amérique), alors il peut être possible d'en déduire l'appropriées fragment d'adhésion facilement et automatiquement, et la requête que seul l'éclat.
Plus d'informations sur la fragmentation:
Tout d'abord, chaque serveur de base de données sont identiques, ayant la même structure de table. Deuxièmement, les enregistrements de données sont logiquement divisé en une fragmenté de la base de données. À la différence de la base de données partitionnée, chaque enregistrement de données existe dans un seul fragment (sauf s'il y a mise en miroir pour la sauvegarde/redondance) avec toutes les opérations CRUD effectuées dans la base de données. Vous n'aimez pas la terminologie utilisée, mais il s'agit d'une manière différente d'organiser une base de données logique en parties plus petites.
Mise à jour: Vous ne pause MVC. Le travail de détermination de la bonne fragment d'où stocker les données de manière transparente par votre couche d'accès aux données. Il vous faudra déterminer le bon éclat sur la base des critères que vous avez utilisé pour éclat de votre base de données. (Comme vous l'avez manuellement éclat de la base de données dans certains des fragments différents basés sur certains aspects concrets de votre application.) Ensuite, vous devez prendre soin lors du chargement et stockage des données à partir de/dans la base de données à utiliser le bon éclat.
Peut-être que cet exemple avec du code Java rend un peu plus clair (c'est sur les Hibernate Shards projet), comment ce serait de travailler dans un scénario réel.
À l'adresse "why sharding
": C'est surtout que pour des applications à grande échelle, avec beaucoup de données. Tout d'abord, il aide à minimiser le temps de réponse pour les requêtes de base de données. Deuxièmement, vous pouvez utiliser plus cher, "bas de gamme" machines pour héberger vos données sur, au lieu d'un seul gros serveur, qui peut ne suffisent plus.