sql >> Databáze >  >> RDS >> PostgreSQL

Přidejte indexy pro urychlení Geocoder v blízkosti vyhledávání

Zpomalení je pravděpodobně způsobeno matematickými operacemi, nikoli načítáním dat tabulky. Část vašich kritérií není proti polím záznamů, ale proti výsledku matematické operace s jinými záznamy, takže se stává O(N).

Důvod, proč Postgres nepoužívá index a místo toho volí Seq scan, je ten, že se rozhodl, že většinu záznamů tabulky bude nutné načíst během dotazování. Když má být načtena většina záznamů v tabulce, indexy nemusí přinést mnoho výhod, pokud vůbec nějaké.

Chcete-li věci urychlit, měli byste zvážit použití prostorových indexů a vyhledávání na základě okolí PostGis nebo alternativně Elasticsearch pomocí Dotaz na geografickou vzdálenost .




  1. Při ukládání data a času na server SQL (typ datetime), v jakém formátu je ukládá?

  2. Získejte minimální cenu každého typu produktu s převodem měny

  3. Formát času Rails Activerecord/Postgres

  4. Kdy použít datum a čas nebo časové razítko