PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Rechercher dans 300 millions d'adresses avec pg_trgm

Le partitionnement de table n'aidera du tout .

Mais oui, il existe un bon moyen :Mettre à niveau à une version actuelle de Postgres. Il y a eu de nombreuses améliorations pour les index GiST, pour le module pg_trgm en particulier et pour le big data en général. Devrait être nettement plus rapide avec Postgres 10.

Votre recherche "plus proche voisin" semble correcte mais pour un petit LIMIT utilisez plutôt cette requête équivalente :

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;

Citer le manuel :