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

Isso tem impacto no desempenho ao usar DECIMAL (17,13) para dados de latitude e longitude no MySQL?


Mesmo 12 dígitos é ridículo. Eu recomendo um dos seguintes:

DECIMAL(8,6)/(9,6) é suficiente para distinguir duas pessoas que estão uma ao lado da outra. E suspeito que o GPS não seja tão preciso. Total:9 bytes para as duas colunas.

DECIMAL(6,4)/(7,4) é suficiente para casas ou empresas, exceto que não há componente vertical. 7 bytes.

Mais discussão sobre precisão lat/lng:http://mysql.rjweb.org/doc .php/latlng#representation_choices ou https://stackoverflow.com/a/50126941/1766831

Quanto ao desempenho, não há muita diferença. Aqui estão os pontos:
  • Mais casas decimais ocupam mais espaço em disco (e cache de memória RAM), o que torna as coisas um pouco mais lentas.
  • Mais casas decimais significam mais computação para trabalhar com os dígitos. Novamente, isso é apenas um pequeno impacto.

Outros tamanhos que você mencionou:
lat DECIMAL(17, 13)
lon DECIMAL(17, 13)

ocupa um total de 16 bytes. Enquanto isso, este par:
lat DECIMAL(14, 12)
lon DECIMAL(15, 12)

é apenas um byte menor!