sql >> Database >  >> RDS >> PostgreSQL

Zoek in 300 miljoen adressen met pg_trgm

Tabelpartitionering helpt helemaal niet .

Maar ja, er is een goede manier:Upgrade naar een actuele versie van Postgres. Er zijn veel verbeteringen geweest voor GiST-indexen, voor de pg_trgm-module in het bijzonder en voor big data in het algemeen. Zou aanzienlijk sneller moeten zijn met Postgres 10.

Uw zoekopdracht naar "dichtstbijzijnde buur" ziet er correct uit, maar voor een kleine LIMIT gebruik in plaats daarvan deze equivalente zoekopdracht:

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;

De handleiding citeren:




  1. PostgreSQL-naamgevingsconventies

  2. Natuurlijk sorteren SQL ORDER BY

  3. Dubbelzinnige kolomquery

  4. Altijd een database nodig voor je app?