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

Har det indflydelse på ydeevnen, når du bruger DECIMAL(17,13) til både bredde- og længdegradsdata i MySQL?

Selv 12 cifre er latterligt. Jeg anbefaler en af ​​følgende:

DECIMAL(8,6)/(9,6) er tilstrækkeligt til at skelne mellem to personer, der står ved siden af ​​hinanden. Og jeg formoder, at GPS ikke er så præcis. I alt:9 bytes for de to kolonner.

DECIMAL(6,4)/(7,4) er tilstrækkeligt til huse eller virksomheder, bortset fra at der ikke er nogen vertikal komponent. 7 bytes.

Mere diskussion af lat/lng-præcision:http://mysql.rjweb.org/doc .php/latlng#representation_choices eller https://stackoverflow.com/a/50126941/1766831

Med hensyn til ydeevne er der ikke den store forskel. Her er punkterne:

  • Flere decimaler tager mere disk- (og ram-cache) plads, så tingene går lidt langsommere.
  • Flere decimaler betyder mere beregning for at arbejde med cifrene. Igen, dette er kun et lille hit.

Andre størrelser, du nævnte:

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

tager i alt 16 bytes. I mellemtiden, dette par:

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

er kun en byte mindre!




  1. Hvorfor er MySQL's maksimale tidsgrænse 838:59:59?

  2. MySQL cache og dato funktioner

  3. Spring Boot + docker-compose + MySQL:Forbindelse nægtet

  4. Entity Framework fungerer ikke med den tidsmæssige tabel