sql >> Databáze >  >> RDS >> Mysql

Jak optimalizovat SQL dotaz s výpočtem vzdálenosti podle zeměpisné délky a šířky?

Zde je několik nápadů, z nichž některé nemusí platit v závislosti na vaší přesné situaci.

  1. Můžete provést převod zeměpisné šířky a délky na radiány a uložit je také do řádku. To by ušetřilo náklady na tyto výpočty (ve skutečnosti by náklady vznikly jednou při ukládání dat).
  2. Pokud je vaše tabulka velmi velká, můžete k omezení výsledků, na které použijete Haversinceův vzorec, použít jednoduchý výpočet lineární vzdálenosti místo Haversinceho vzorce.
  3. Pokud máte v tabulce další údaje, které by posloužily jako dobrý první filtr (země/oblast/atd.), můžete je použít jako první.
  4. Mohli byste změnit pořadí spojení tak, aby byly použity po filtru vzdálenosti, takže vám nevzniknou náklady na spojení u dat, která nesplňují podmínky.


  1. Předání pole dat jako vstupního parametru proceduře Oracle

  2. Vyberte poslední zprávu mezi komunikací dvou uživatelů v mysql

  3. 4 způsoby, jak zobrazit seznam všech pohledů v databázi SQL Server

  4. Použití pysparku pro připojení k PostgreSQL