Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

sexta-feira, 27 de novembro de 2015

Criando índice no Postgres

Em uma postagem anterior falamos de como detectar e configurar o número de conexões concorrentes no Postgres e no de hoje iremos falar como criar um índice em uma tabela de seu banco de dados.

Os índices são estruturas que auxiliam na busca de informações em um banco de dados, funciona similarmente ao índice de um livro, sendo assim faz com que as informações sejam recuperadas mais rapidamente e como consequência diminui o tempo de processamento de seu banco e os acessos concorrentes.

Estávamos recebendo diversas reclamações que o acesso a um de nossos sistemas estava bastante lento. Analisando com o utilitário TOP do Linux, detectamos que o processo do Postgres estava utilizando muita CPU. Resolvemos analisar a tabela que armazena as informações de autenticação, detectamos que havia mais de 1 milhão de registro e que a mesma não possuía um índice, como o sistema tem uma rotina que detecta se o usuário já tinha uma sessão aberta, o sistema demora muito tempo realizando a busca nos mais de 1 milhões de registros.

Resolvemos o problema criando um índice para a tabela com o campo que é usado para a pesquisa, o comando usado para criar segue abaixo.


# create index nome_do_índice on  nome_da_tabela(nome_do_campo);

nome_do_índice = Nome que você deseja dar ao índice criado.
nome_da_tabela = Nome da tabela que você deseja criar o índice.
nome_do_campo = Nome do campo que é usado para a busca da informação.


Após a criação do índice o acesso ao sistema melhorou sensivelmente, outro beneficio detectado foi que diminuiu o número de conexões concorrentes ao banco, pois como o acesso as informações ficou mais ágil, fez com que fosse liberado mais rapidamente a conexão com o banco.

Qualquer crítica, sugestão ou dúvida mande uma mensagem.


Atenciosamente,
Joaquim Ferraz

Nenhum comentário:

Postar um comentário

Regras:
Só serão aprovados comentários relacionados ao "Post".
Seu comentário será aprovado e respondido o mais rápido possível.
Obrigado.