Al desarrollar una aplicación multicliente, planeamos usar una base de datos diferente para cada cliente. Pero podría ser más de 1000 clientes (aplicaciones).
¿PostgreSQL lo manejará sin problemas?
¿Alguien ha intentado algo similar?
Nota: 35 tablas para cada una, con hasta 3000 registros como promedio, para cada base de datos.
fuente
Suena desordenado desde el punto de vista de la administración. ¿Cómo planea hacer una copia de seguridad de tantas bases de datos? con un guión que recorre cada uno?
A menos que tenga una buena razón, ¿por qué no solo tener una base de datos donde la estructura está diseñada para que todos los datos se vinculen a un ID de cliente? Agregue índices / clave externa / claves primarias basadas en este campo que garantizará la integridad de los datos.
Entonces solo necesita tener una cláusula where en todas sus consultas para acceder a un solo ID de cliente. Esto será mucho más simple de mantener y es igual de fácil de desarrollar (porque en cualquier caso debe permitir la identificación del cliente)
fuente
search_path
hace por usted.Hay personas que hacen esto, particularmente para el alojamiento de servidores compartidos.
Pensando en los problemas aquí no hay almuerzo gratis. Probablemente podría hacerlo con esquemas en una aplicación transparente. Sin embargo, obtendrá miles de esquemas y decenas de miles de tablas, lo que planteará problemas adicionales.
Creo que, en general, el enfoque de db múltiple es más sensato dados sus comentarios.
La administración (como las copias de seguridad) será interesante. También creo que en algún momento las conexiones a la base de datos comenzarán a tomar más tiempo. Si está utilizando pg_hba.conf para restringir el acceso (que debería estar haciendo), eso también será un dolor de cabeza y probablemente querrá crear una solución para generar ese archivo para usted .....
fuente
Espero que este enlace sea mejor para leer: 10,000 bases de datos en un clúster PostgreSQL por Jon Jensen, 2008.
Un extracto:
fuente