Je suis en train de mettre en place un système SaaS, où nous prévoyons de donner à chaque client sa propre base de données. Le système est déjà configuré pour pouvoir facilement passer à d’autres serveurs si la charge devient trop lourde; nous espérons avoir des milliers, voire des dizaines de milliers de clients.
Des questions
- Existe-t-il une limite pratique au nombre de micro-bases de données que vous pouvez / devriez avoir sur un serveur SQL?
- Peut-il affecter les performances du serveur?
- Est-il préférable d'avoir 10 000 bases de données de 100 Mo chacune ou une base de données de 1 To?
Information additionnelle
Lorsque je parle de "micro-bases de données", je ne parle pas vraiment de "micro"; Je veux juste dire que nous visons des milliers de clients, donc chaque base de données ne représente qu'un millième ou moins du stockage total des données. En réalité, chaque base de données se situerait autour de 100 Mo, en fonction de l’utilisation qu’elle en obtiendrait.
La principale raison d'utiliser 10 000 bases de données est son évolutivité. Le fait est que V1 du système ne possède qu'une base de données, et nous avons eu des moments inconfortables lorsque la base de données était à rude épreuve.
Cela mettait à rude épreuve le processeur, la mémoire, les E / S - tout ce qui précède. Même si nous avons résolu ces problèmes, ils nous ont fait comprendre qu'à un moment donné, même avec la meilleure indexation au monde, si nous réussissons aussi bien que nous l'espérons, nous ne pouvons tout simplement pas mettre toutes nos données dans le même panier. ' base de données. Donc, pour la version 2, nous partageons afin de pouvoir répartir la charge entre plusieurs serveurs de base de données.
J'ai passé l'année dernière à développer cette solution fragmentée. C'est une licence par serveur, mais de toute façon, cela est pris en charge puisque nous utilisons des machines virtuelles sur Azure. La raison pour laquelle la question se pose maintenant est qu’auparavant, nous n’offrions que nous-mêmes à de grandes institutions. Notre prochain ordre de travail est un modèle de libre service dans lequel toute personne disposant d’un navigateur peut s’inscrire et créer sa propre base de données. Leurs bases de données seront beaucoup plus petites et beaucoup plus nombreuses que les grandes institutions.
Nous avons essayé Azure SQL Database Elastic Pools . Les performances étaient très décevantes, nous sommes donc revenus aux machines virtuelles classiques.