Otmização de Consultas (arquivo morto)

5 respostas
FernandoCartaxo

Olá,
bem, estou desenvolvendo uma aplicação web e pensando um pouco em torná-la rápida me deparei com o paradgima de usuarios inativos.
Explicando melhor o problema:
na tabela de cadastro de usuário, com o passar do tempo, vai existindo usuários inativos, e que acabam pesando nas consultas.
O que pretendo é tornar as consultas na tabela de usuario o mais rápido possível, pois sempre a mesma vai ser usada.
Minha solução é criar uma tabela de usuario_inativo e movimentar todos os cadastros que estão inativos durante X dias.
Quando um cadastro não for encontrado na tabela principal, irá procurar na tabela de usuarios_inativos e “restaurar” o usuario para a tabela principal.

Essa solução funcina, porém creio que há outras maneiras de contornar esse problema
Alguém que já passou por isso ou tem alguma outra sugestão para poder aumentar meu desempenho?

ps: banco de dados é o Postgres

5 Respostas

brunoonurbgyn

O certo é fazer na mesma tabela mesmo…

Só o tempo que você gasta com a 2ª consulta ativada… Seria o mesmo tempo se fosse na mesma tabela.

Está demorando muito??? Posta o Script da sua tabela e o Script de consulta aí …

Vai ajudar

joca_java

Porque não deixas todos na mesma tabela e insere mais um campo tipo um “status” pro usuário sei lá…

Aí, ao invés de ter que passar os “inativos” para outra tabela, você setaria apenas o status dele para “I” por exemplo.

Tipo uma exclusão lógica.

“from Usuario u where u.status = ‘A’” -> Pegaria apenas os usuários ativos.

Não sei se é a melhor maneira mas é uma sugestão.

FernandoCartaxo

Acontece que se eu deixar uma tabela com 500.000 registros (não é isso que tem), para eu fazer uma consulta ficará lento, independente de ter campo de inativo ou não

Eu tendo duas tabelas, como os usuários ativos são os que frequentemente usam, eu só devo consultar a tabela de usuarios_inativos muito pouco, o que não tornaria o processo igual

G

Olá.
A criação de índice pode ajudar a melhorar a performance de sua consulta. Acho desnecessário a criação de outra tabela, mas tudo depende :D.

Até

Rodrigo_Carvalho_Aul

Eu não acho 500 mil registros em uma tabela um número muito grande. Provavelmente a criação de alguns indices deve ser o suficiente. Dificilmente eu separaria em duas tabelas…

[]'s

Rodrigo C. A.

Criado 29 de dezembro de 2008
Ultima resposta 2 de jan. de 2009
Respostas 5
Participantes 5