Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

catana

Consulta Lenta

Recommended Posts

Olá!

Tenho uma consulta para fazer que esta demorando muito na resposta já tentei de várias maneiras e nao estou conseguindo resolver o problema.

Tenho uma tabela principal ex:

Pessoas

id

nome

 

e uma tabela secundaria:

filhos

id

id_pessoa

nome_filho

 

preciso fazer uma pesquisa que possa filtrar tanto pela tabela pessoa como pela tabela filhos, no pior caso preciso que todos os itens da tabela pessoas apareçam, mesmo estas nao tendo filhos, para isto tentei:

 

select * from pessoas left join filhos on id_pessoa = pessoas.id

 

beleza funciona, mas funciona apenas com poucos dados, como no caso tenho 7000 registros na tabela pessoas e 20.000 na tabela filhos o mysql trava de uma maneira que tenho que reiniciar a maquina

tentei assim tbm:

 

select * from pessoas where id IN (select id_pessoa from filhos)

 

mas tbm nao resolveu o problema, alguem tem alguma ideia do que posso fazer para melhorar isto ?

Tenho na verdade uma base de dados com mais tabelas secundarias, e em alguns testes até com uma tabela funciona qdo acrecendo outras da o problema e trava a maquina.

Se alguem puder ajudar agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

catana, seja bem vindo ao Fórum iMasters, conheça nossas regras: Regras do Fórum

 

1º passo é tirar o * para trazer todos os campos, defina quais campos você quer trazer na sua consulta.

2º Tente utiliza o Inner Join, ele irá trazer somente os registros que possuem mesmo a referência nas duas tabelas.

3º Veja se esta tabela possui indice e utilize ele no Order By.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.