On 16-11-2012 12:09, Toty Ypiranga wrote:
> Estou desenvolvendo um sistema de biotecnologia, na qual usuários
> poderão se cadastrar livremente (publico) e armazenar suas sequências
> de DNA e usar o sistema para uma serie de tarefas como alinhar
> sequencia calcular peso molecular do DNA e etc... Como estou usando
> biosql (conjunto de schemas e funções para padronização de base de
> dados genômicas) com postgres emergiu a duvida sobre qual cenário
> teria um melhor desempenho.
> 
Os dois cenários tem vantagens e desvantagens. A principal pergunta é: qual a
quantidade de usuários você espera?

> Cenário: 01 – uma base de dados para cada usurário;
> 
> neste cenário o usuário se cadastra e o sistema cria uma base de dados
> com o conjunto de tabelas do biosql;
> 
Vantagens

* isolamento total;
* catálogo pequeno (um catálogo por BD).

Desvantagens

* número alto de BDs significa número alto de conexões.

> 
> Cenário: 02 – uma base de dados única para o sistema e um schema para
> cada usuário;
> 
> neste cenário criaria uma trigger na tabela usuario e cada novo
> usuario cadastrado a trigger criaria um novo schema com as tabelas e
> funções do biosql colocando o nome do schema com o id do usuario.
> 
Vantagens

* compartilhamento de objetos comuns;
* número baixo de conexões (se estiver utilizando pool).

Desvantagens

* isolamento parcial (GRANT/REVOKE para cada novo usuário ou objeto);
* catálogo inchado (número alto de objetos em um mesmo BD).

> Diante dos cenários expostos acima, qual teria o melhor desempenho, ou
> tanto faz, pois daria na mesma.
> 
A resposta mais sensata seria: cenário mesclado. Utilizar o cenário 2 até um
número razoável (que você terá que descobrir) de usuários. O cenário 1 será
utilizado para expansão (quando cenário 2 atingir o limite preestabelecido).


-- 
   Euler Taveira de Oliveira - Timbira       http://www.timbira.com.br/
   PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a