sql >> Database >  >> RDS >> PostgreSQL

Indexen toevoegen om Geocoder in de buurt van zoeken te versnellen

De vertraging wordt waarschijnlijk veroorzaakt door wiskundige bewerkingen en niet door het ophalen van tabelgegevens. Een deel van uw criteria is niet tegen recordvelden, maar tegen de uitkomst van de wiskundige bewerking op andere records, dus het wordt een O(N).

De reden dat Postgres geen index gebruikt en in plaats daarvan Seq scan kiest, is omdat het besluit dat de meeste tabelrecords moeten worden opgehaald tijdens het opvragen. Wanneer de meeste records in de tabel moeten worden opgehaald, kunnen indexen niet veel opleveren.

Om de zaken te versnellen, kunt u overwegen om ruimtelijke indexen en op omgeving gebaseerde zoekopdrachten van PostGis te gebruiken of, als alternatief, Elasticsearch met Geo-afstandsquery .




  1. Laravel-gegevens komen niet overeen tijdens het gebruik van \PDO::ATTR_EMULATE_PREPARES => waar

  2. Hoe stel ik PostgreSQL in voor Play 2.0?

  3. PostgreSQL JDBC-stuurprogramma werkt niet voor Heroku DB Connection

  4. Mysql-query, selecteren, groeperen en optellen in minuten