PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Cerca in 300 milioni di indirizzi con pg_trgm

Il partizionamento delle tabelle non aiuterà per niente .

Ma sì, c'è un buon modo:Aggiorna a una versione corrente di Postgres. Ci sono stati molti miglioramenti per gli indici GiST, per il modulo pg_trgm in particolare e per i big data in generale. Dovrebbe essere sostanzialmente più veloce con Postgres 10.

La tua ricerca "vicino più vicino" sembra corretta ma per un piccolo LIMIT usa invece questa query equivalente:

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 il manuale: