sql >> Databasteknik >  >> RDS >> Mysql

Påverkar det prestandan när DECIMAL(17,13) används för både latitud- och longituddata i MySQL?

Även 12 siffror är löjligt. Jag rekommenderar något av följande:

DECIMAL(8,6)/(9,6) är tillräckligt för att särskilja två personer som står bredvid varandra. Och jag misstänker att GPS inte är så exakt. Totalt:9 byte för de två kolumnerna.

DECIMAL(6,4)/(7,4) är tillräckligt för hus eller företag, förutom att det inte finns någon vertikal komponent. 7 byte.

Mer diskussion om lat/lng-precision:http://mysql.rjweb.org/doc .php/latlng#representation_choices eller https://stackoverflow.com/a/50126941/1766831

När det gäller prestanda är det inte så stor skillnad. Här är punkterna:

  • Fler decimaler tar mer diskutrymme (och ram-cache), så sakta saktar ner något.
  • Fler decimaler innebär mer beräkning för att arbeta med siffrorna. Återigen, detta är bara en liten träff.

Andra storlekar du nämnde:

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

tar totalt 16 byte. Under tiden detta par:

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

är bara en byte mindre!




  1. hur man tar bort dubbletter av värden i mysql-tabellen

  2. SQLite-gräns

  3. Hämtar en rad med data från nyckel-värde partabell i MySQL

  4. Dela upp stora raderingsoperationer i bitar