J'ai parlé à l'architecte de la base de données de wordpress.com, le service d'hébergement de WordPress. Il a dit qu'ils avaient commencé avec une seule base de données, hébergeant tous les clients ensemble. Le contenu d'un seul site de blog n'est vraiment pas grand-chose, après tout. Il va de soi qu'une seule base de données est plus facile à gérer.
Cela a bien fonctionné pour eux jusqu'à ce qu'ils aient des centaines et des milliers de clients, ils ont réalisé qu'ils devaient évoluer , exécutant plusieurs serveurs physiques et hébergeant un sous-ensemble de leurs clients sur chaque serveur. Lorsqu'ils ajoutent un serveur, il serait facile de migrer des clients individuels vers le nouveau serveur, mais plus difficile de séparer les données au sein d'une seule base de données appartenant au blog d'un client individuel.
Au fur et à mesure que les clients vont et viennent et que les blogs de certains clients ont un volume d'activité élevé tandis que d'autres deviennent obsolètes, le rééquilibrage sur plusieurs serveurs devient un travail de maintenance encore plus complexe. La surveillance de la taille et de l'activité par base de données individuelle est également plus simple.
De même, effectuer une sauvegarde ou une restauration de base de données d'une seule base de données contenant des téraoctets de données, par rapport aux sauvegardes et restaurations de bases de données individuelles de quelques mégaoctets chacune, est un facteur important. Considérez :un client appelle et dit que ses données ont été SNAFU en raison d'une mauvaise saisie de données, et pourriez-vous s'il vous plaît restaurer les données de la sauvegarde d'hier ? Comment en restaureriez-vous un les données du client si tous vos clients partagent une seule base de données ?
Finalement, ils ont décidé de se diviser en une base de données distincte par client , bien que complexe à gérer, leur a offert une plus grande flexibilité et ils ont réorganisé leur service d'hébergement sur ce modèle.
Ainsi, alors qu'à partir d'une modélisation des données perspective, il semble être la bonne chose à faire pour tout garder dans une seule base de données, un peu d'administration de base de données les tâches deviennent plus faciles lorsque vous dépassez un certain seuil de volume de données.