Mysql
 sql >> Database >  >> RDS >> Mysql

Ha un impatto sulle prestazioni quando si utilizza DECIMAL(17,13) per i dati di latitudine e longitudine in MySQL?

Anche 12 cifre è ridicolo. Consiglio uno dei seguenti:

DECIMAL(8,6)/(9,6) è sufficiente per distinguere due persone in piedi una accanto all'altra. E sospetto che il GPS non sia così preciso. Totale:9 byte per le due colonne.

DECIMAL(6,4)/(7,4) è sufficiente per le case o le imprese, salvo che non c'è una componente verticale. 7 byte.

Altre discussioni sulla precisione lat/lng:http://mysql.rjweb.org/doc .php/latlng#representation_choices o https://stackoverflow.com/a/50126941/1766831

Per quanto riguarda le prestazioni, non c'è molta differenza. Ecco i punti:

  • Più posizioni decimali occupano più spazio su disco (e cache ram), quindi rallenta leggermente le cose.
  • Più cifre decimali significano più calcoli per lavorare con le cifre. Ancora una volta, questo è solo un leggero successo.

Altre taglie che hai citato:

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

occupa un totale di 16 byte. Nel frattempo, questa coppia:

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

è solo un byte più piccolo!