Utilizando índices em tabelas no PostgreSQL
Muitas pessoas hoje em dia não utilizam um recurso básico presente em quase todos os SGBDs conhecidos popularmente: os índices.
Para que servem os índices?
Os índices são criados para direcionar o otimizador de consultas na hora de localizar os registros desejados, de acordo com o filtro informado no momento da consulta sql para evitar um seq scan e funcionam exatamente como um índice de um livro: diz em que página está cada conteúdo.
Clique aqui para saber mais sobre quando ocorre o seq scan.
Sendo assim, quando realizamos uma pesquisa pelo filtro login=’marcelo’, o banco saberá exatamente em que local do disco (hd) encontra-se o registro que atenda a esse critério.
Criando o índice
CREATE INDEX idx_usuario_login_senha ON usuario USING btree (login,senha);
No caso acima, criamos o índice idx_usuario_login_senha na tabela usuario para os campos login e senha. Então, a consulta será otimizada quando esses 2 campos forem utilizados em uma consulta. Exemplo:
SELECT * FROM usuario WHERE login = 'marcelo' AND senha = '123456';
Veja também como criar índices condicionais no PostgreSQL.
É importante saber que índices consomem muito espaço em disco e sua criação apesar de muito útil para a performance do banco de dados, podem se tornar inúteis se criados em excesso. Portanto é sempre bom conhecer bem a aplicação e saber quais filtros ela utiliza em suas consultas para evitar usar recursos excessivos.

Um comentário
Deixe o seu!
[...] Baú de Devenvolvimento – Utilizando Índices no PostgreSQL [...]