[firebase-br] Indices e foreign key.

Wanderlei Borges wanderleiborges em gmail.com
Sáb Mar 23 09:14:01 -03 2019


Bom dia. Infelizmente não existe uma resposta simples e única. Imagine que
cada índice (PK ou UK por exemplo) é uma tabela utilizada pelo SGBD para
JOINs e ORDER BY. Se os dados são utilizados na maior parte do tempo para
consultas, você precisará de vários índices para que os dados sejam
recuperados já em ordem, pois ter que ordenar os dados somente no momento
do SELECT tomaria tempo demais da CPU e dos usuários. Por outro lado, ter
muitos índices (leia-se tabelas internas para controle) requer mais tempo
do SGBD para se fazer INSERT, DELETE e UPDATE, pois além das tabelas de
dados, terá de atualizar índices.
A melhor fórmula é analisar de que forma o banco de dados será utilizado e
procurar privilegiar o tempo dos usuários. Isto será um exercício constante
de avaliação do banco de dados pois ele costuma crescer diariamente.
At.
Wanderlei

Em sex, 22 de mar de 2019 21:47, Igor Borges <igor.hb em gmail.com> escreveu:

> Reginaldo,
> O melhor dos mundos é voce remodelar seu banco de dados afim de criar as
> PK por ID  e as chaves compostas atuais serem transformadas em UK. Acredito
> que você precise mexer no sistema.
>
> Enviado do meu iPhone
>
> Em 22 de mar de 2019, à(s) 12:41, Reginaldo Martins Costa <
> rmc1701e em gmail.com> escreveu:
>
> > Olá pessoal!
> >
> > Meu sistema está ficando com várias tabelas que possuem chave composta
> com
> > vários campos.
> >
> > REQUISIÇÃO (2 campos PK) -1-N-> ITEMREQUISIÇÃO (4 campos PK, contendo os
> 2
> > campos de requisição como FK)
> >
> > COTAÇÃO (2 campos, contendo os 2 campos de requisição como FK)
> >
> > ITEMCOTAÇÃO: a PK é composta dos dois campos PK de COTAÇÃO, MAIS os 4
> > campos PK de ITEMREQUISIÇÃO)
> >
> > PERGUNTA:
> > 1. Indices PK e FK com tantos campos assim podem afetar a performance do
> > banco a médio e longo prazo?
> >
> > 2. Conheço um sistema que possuem campos seriais (ID) em todas as tabelas
> > para fazerem o trabalho do relacionamento. Isso seria melhor do que as
> > chaves compostas? Lembrando que com essa solução o banco ainda tem que
> ter
> > os índices únicos com os campos compostos.
> >
> > Qual a opinião de vocês?
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista