Em 28 de abril de 2015 20:05, Matheus Saraiva
<matheus.sara...@gmail.com> escreveu:
>>> E se o servidor for modesto? Se o espaço de armazenamento for um
>>> requisito crítico?
>
>>Tire a artificial, se for o caso.  Mas lembre-se da máxima: otimização
>>precoce é raiz de toda sorte de males.
>
> Quanto ao desempenho de JOINS realmente nuca testei, mas acho que quanto a
> espaço em disco ao usar chaves naturais compostas para relacionamento é algo
> inevitavelmente mais custoso, já que teria-se que replicar os mesmo campos
> que compõe a chave primária na tabela que se relacionaria com ela.

Isso só no caso em que a chave primária realmente é ‘replicada’ como
chave estrangeira em outras relações.  Não é nem de longe o caso
geral.


> Acho que para esse caso, eu usaria chaves artificiais para o relacionamento
> e criaria UNIQUEs para garantir a unicidade.

É uma alternativa válida, quando necessário.  Como sempre digo, o pior
problema das ‘chaves’ artificiais é quando se confia nelas a ponto de
não se declararem chaves naturais.  Mas, entre você ter de ter um
atributo e um índice extra em uma tabela que pode ser bastante usada,
e fazer junções que seriam desnecessárias sem o uso de ‘chaves’
artificiais, geralmente o que se tem é perda de desempenho com as
‘chaves’ artificiais.

Na prática, um sistema com chaves naturais é tão diferente de um com
‘chaves’ artificiais, que nunca se fazem testes realistas de
comparação.  A regra de evitar otimização precoce levaria a fazer um
sistema só com as chaves naturais, e só acrescentar as artificiais
quando se constantar algum problema real de capacidade ou de
desempenho.


-- 
skype:leandro.gfc.dutra?chat      Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191              gTalk: xmpp:leand...@jabber.org
+55 (61) 9302 2691        ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to