sql >> Databasteknik >  >> RDS >> PostgreSQL

Sök i 300 miljoner adresser med pg_trgm

Tabellpartitionering hjälper inte alls .

Men ja, det finns ett bra sätt:Uppgradera till en aktuell version av Postgres. Det har skett många förbättringar för GiST-index, för pg_trgm-modulen i synnerhet och för big data i allmänhet. Bör vara betydligt snabbare med Postgres 10.

Din "närmaste granne"-sökning ser korrekt ut men för en liten LIMIT använd den här motsvarande frågan istället:

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;

Citerar manualen:




  1. Avbryt lika perioder i slutet av månaden

  2. Lagra och hämta bilder i Postgresql med Java

  3. Välj kolumner i tabellindex

  4. Lägg till Ordinal Indicator till ett datum i Oracle