PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Pesquise em 300 milhões de endereços com pg_trgm


O particionamento de tabela não ajudará em nada .

Mas sim, existe uma boa maneira:Atualizar para uma versão atual do Postgres. Houve muitas melhorias para índices GiST, para o módulo pg_trgm em particular e para big data em geral. Deve ser substancialmente mais rápido com o Postgres 10.

Sua pesquisa "vizinho mais próximo" parece correta, mas para um pequeno LIMIT use esta consulta equivalente em vez disso:
SELECT address, similarity(address, '981 maun st') AS sml 
FROM   addresses 
WHERE  address % '981 maun st' 
ORDER  BY address &lt-> '981 maun st'
LIMIT  10;

Citando o manual: