Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Precisa de ajuda para otimizar uma pesquisa geográfica lat/Lon para mysql


Acho que você realmente deveria considerar o uso do PostgreSQL (combinado com Postgis).

Desisti do MySQL para dados geoespaciais (por enquanto) pelos seguintes motivos:
  • O MySQL suporta apenas tipos de dados espaciais/índices espaciais em tabelas MyISAM com as desvantagens inerentes do MyISAM (sobre transações, integridade referencial...)
  • O MySQL implementa algumas das especificações do OpenGIS apenas em uma base MBR (retângulo delimitador mínimo) que é bastante inútil para processamento de consulta geoespacial mais sério (consulteeste link no manual do MySQL ). Provavelmente, você precisará de algumas dessas funcionalidades mais cedo ou mais tarde.

PostgreSQL/Postgis com índices espaciais apropriados (GIST) e consultas apropriadas podem ser extremamente rápidos.

Exemplo :determinando polígonos sobrepostos entre uma 'pequena' seleção de polígonos e uma tabela com mais de 5 milhões (!) polígonos muito complexos, calcule a quantidade de sobreposição entre esses resultados + classificação. Tempo médio de execução:entre 30 e 100 milissegundos (Esta máquina em particular tem muita RAM, claro. Não se esqueça de ajustar a instalação do PostgreSQL... (leia a documentação)).