PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dodaj indeksy, aby przyspieszyć wyszukiwanie geokodera

Spowolnienie jest prawdopodobnie spowodowane operacjami matematycznymi, a nie pobieraniem danych z tabeli. Część twoich kryteriów nie dotyczy pól rekordów, ale wyników operacji matematycznych na innych rekordach, więc staje się to O(N).

Powodem, dla którego Postgres nie używa indeksu i wybiera zamiast tego skanowanie Seq, jest to, że decyduje, że większość rekordów tabeli będzie musiała zostać pobrana podczas zapytania. Kiedy większość rekordów w tabeli ma zostać pobrana, indeksy mogą nie przynieść większych korzyści, jeśli w ogóle.

Aby przyspieszyć działanie, należy rozważyć użycie indeksów przestrzennych i wyszukiwania na podstawie otoczenia PostGis lub alternatywnie Elasticsearch z Zapytanie o odległość geograficzną .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak napisać DELETE CASCADE dla postgresu?

  2. Jak zaimportować bazę danych PostgreSQL za pomocą phpPgAdmin

  3. Nie można określić typu polimorficznego, ponieważ dane wejściowe mają nieznany typ

  4. ActiveRecord:Jak znaleźć rodziców, których WSZYSTKIE dzieci spełniają warunek?

  5. Używanie LENGTH (kolumna wyliczana) w ORDER BY w Postgres sql