Rozdělení tabulky na oddíly nepomůže vůbec .
Ale ano, existuje dobrý způsob:Upgrade na aktuální verzi Postgres. Došlo k mnoha vylepšením indexů GiST, konkrétně modulu pg_trgm a obecně velkých dat. S Postgres 10 by měl být podstatně rychlejší.
Vaše vyhledávání „nejbližšího souseda“ vypadá správně, ale s malým LIMIT
místo toho použijte tento ekvivalentní dotaz:
SELECT address, similarity(address, '981 maun st') AS sml
FROM addresses
WHERE address % '981 maun st'
ORDER BY address <-> '981 maun st'
LIMIT 10;