Sobes.tech
Junior — Middle

Como implementar e aplicar um índice hash numa base de dados PostgreSQL para acelerar a pesquisa de dados?

sobes.tech IA

Resposta da IA

No PostgreSQL, para acelerar a pesquisa de dados, pode criar um índice de hash, que é ótimo para operações de igualdade (=). Para criar um índice de hash, usa-se o comando:

CREATE INDEX nome_do_índice ON nome_da_tabela USING HASH (nome_da_coluna);

Exemplo:

CREATE INDEX idx_usuarios_email_hash ON usuarios USING HASH (email);

No entanto, deve-se ter em conta:

  • Os índices de hash no PostgreSQL suportam apenas operações de igualdade.
  • Em algumas versões do PostgreSQL, os índices de hash não eram resistentes a falhas, mas isso foi corrigido em versões mais recentes.
  • Frequentemente, para buscas por igualdade, é preferível usar índices B-tree, pois são mais versáteis.

Em Go (Golang), para trabalhar com PostgreSQL, pode usar drivers como "database/sql" com "lib/pq". Para criar um índice, execute uma consulta SQL através da ligação à base de dados:

_, err := db.Exec(`CREATE INDEX idx_usuarios_email_hash ON usuarios USING HASH (email);`)
if err != nil {
    log.Fatal(err)
}

Assim, o índice de hash é criado do lado da base de dados, e em Go, simplesmente executa a consulta SQL correspondente.