Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy ma to wpływ na wydajność podczas używania DECIMAL(17,13) dla danych Latitude i Longitude w MySQL?

Nawet 12 cyfr jest niedorzeczne. Polecam jedno z poniższych:

DECIMAL(8,6)/(9,6) wystarczy, aby odróżnić dwie osoby stojące obok siebie. I podejrzewam, że GPS nie jest aż tak precyzyjny. Łącznie:9 bajtów na dwie kolumny.

DECIMAL(6,4)/(7,4) wystarcza w przypadku domów lub firm, z wyjątkiem braku elementu pionowego. 7 bajtów.

Więcej omówienia precyzji lat/lng:http://mysql.rjweb.org/doc .php/latlng#representation_choices lub https://stackoverflow.com/a/50126941/1766831

Jeśli chodzi o wydajność, nie ma dużej różnicy. Oto punkty:

  • Więcej miejsc dziesiętnych zajmuje więcej miejsca na dysku (i pamięci podręcznej pamięci RAM), więc nieco spowalnia działanie.
  • Więcej miejsc dziesiętnych oznacza więcej obliczeń do pracy z cyframi. Ponownie, to tylko niewielki hit.

Inne wymienione przez Ciebie rozmiary:

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

zajmuje łącznie 16 bajtów. Tymczasem ta para:

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

jest tylko o jeden bajt mniejszy!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie JDeveloper z bazą danych MySQL i bazą danych Oracle na AWS RDS, część 3

  2. Jak uzyskać rekord, jeśli Count wynosi zero w Laravel?

  3. Pobierz nazwy tabel z bazy danych

  4. PHP date('W') vs MySQL YEARWEEK(now())

  5. Umieść wynik zapytania Mysql w tablicy wewnątrz klasy