Mysql
 sql >> Base de données >  >> RDS >> Mysql

Cela a-t-il un impact sur les performances lors de l'utilisation de DECIMAL(17,13) pour les données de latitude et de longitude dans MySQL ?

Même 12 chiffres sont ridicules. Je recommande l'un des éléments suivants :

DECIMAL(8,6)/(9,6) est suffisant pour distinguer deux personnes debout l'une à côté de l'autre. Et je soupçonne que le GPS n'est pas si précis. Total :9 octets pour les deux colonnes.

DECIMAL(6,4)/(7,4) est suffisant pour les maisons ou les entreprises, sauf qu'il n'y a pas de composante verticale. 7 octets.

Plus de discussion sur la précision lat/lng :http://mysql.rjweb.org/doc .php/latlng#representation_choices ou https://stackoverflow.com/a/50126941/1766831

Côté performance, il n'y a pas beaucoup de différence. Voici les points :

  • Plus de décimales prennent plus d'espace disque (et de mémoire cache), ce qui ralentit légèrement les choses.
  • Plus de décimales signifie plus de calculs pour travailler avec les chiffres. Encore une fois, ce n'est qu'un léger succès.

Autres tailles que vous avez mentionnées :

lat DECIMAL(17, 13)
lon DECIMAL(17, 13)

prend un total de 16 octets. Pendant ce temps, cette paire :

lat DECIMAL(14, 12)
lon DECIMAL(15, 12)

est seulement un octet plus petit !