En développant une application multiclient, nous prévoyons d'utiliser une base de données différente pour chaque client. Mais cela pourrait être plus de 1000 clients (applications).
PostgreSQL le gérera-t-il sans aucun problème?
Quelqu'un a-t-il essayé quelque chose de similaire?
Remarque: 35 tableaux pour chacun, avec jusqu'à 3000 enregistrements en moyenne, pour chaque base de données.
la source
Cela ressemble à une chose désordonnée à faire du point de vue de la gestion. Comment prévoyez-vous de sauvegarder autant de bases de données? avec un script qui boucle dans chacun?
Sauf si vous avez une très bonne raison, pourquoi ne pas avoir une seule base de données où la structure est conçue pour que toutes les données soient liées à un identifiant client. Ajoutez des index / clé étrangère / clés primaires en fonction de ce champ, ce qui garantira l'intégrité des données.
Ensuite, il vous suffit d'avoir une clause where dans toutes vos requêtes pour accéder à un seul ID client. Ce sera beaucoup plus simple à entretenir et tout aussi facile à développer (car dans les deux cas, vous devez permettre l'identification du client)
la source
search_path
cela le fait pour vous.Il y a des gens qui font cela, en particulier pour l'hébergement de serveurs partagés.
En réfléchissant aux problèmes ici, il n'y a pas de déjeuner gratuit. Vous pourriez probablement le faire avec des schémas d'une manière transparente pour l'application. Cependant, vous obtenez alors des milliers de schémas et des dizaines de milliers de tables, ce qui posera des problèmes supplémentaires.
Je pense que dans l'ensemble, l'approche à plusieurs bases de données est la plus saine compte tenu de vos commentaires.
La gestion (comme les sauvegardes) deviendra intéressante. Je pense également qu'à un moment donné, les connexions à la base de données commenceront à prendre plus de temps. Si vous utilisez pg_hba.conf pour restreindre l'accès (ce que vous devez faire), cela deviendra également un casse-tête et vous voudrez probablement créer une solution pour générer ce fichier pour vous .....
la source
J'espère que ce lien est mieux à lire: 10 000 bases de données sur un cluster PostgreSQL par Jon Jensen, 2008.
Un extrait:
la source