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

Potřebujete pomoc s optimalizací geografického vyhledávání šířky/délky pro mysql

Myslím, že byste opravdu měli zvážit použití PostgreSQL (v kombinaci s Postgis).

Vzdal jsem se MySQL kvůli geoprostorovým datům (prozatím) z následujících důvodů:

  • MySQL podporuje pouze prostorové datové typy / prostorové indexy na tabulkách MyISAM s inherentními nevýhodami MyISAM (týkající se transakcí, referenční integrity...)
  • MySQL implementuje některé specifikace OpenGIS pouze na bázi MBR (minimální ohraničující obdélník), což je pro většinu seriózních geoprostorových dotazů-zpracování celkem k ničemu (viztento odkaz v příručce MySQL ). Je pravděpodobné, že některé z těchto funkcí budete dříve nebo později potřebovat.

PostgreSQL/Postgis se správnými (GIST) prostorovými indexy a správnými dotazy může být extrémně rychlý.

Příklad :určení překrývajících se polygonů mezi „malým“ výběrem polygonů a tabulkou s více než 5 miliony (!) velmi složitými polygony, vypočítat míru překrytí mezi těmito výsledky + seřadit. Průměrná doba běhu:mezi 30 a 100 milisekundami (Tento konkrétní stroj má samozřejmě hodně paměti RAM. Nezapomeňte vyladit instalaci PostgreSQL... (přečtěte si dokumenty)).



  1. Redundance N+1 a konsolidace serverů

  2. Získávání podivných znaků při načítání hodnoty v databázi mysql

  3. Převést „datetimeoffset“ na „date“ v SQL Server (příklady T-SQL)

  4. Jak převést 1985-02-07T00:00:00.000Z (ISO8601) na hodnotu data v Oracle?