Je stocke une grande liste de points lnt / lat dans une base de données MySQL. Pour le moment, ce sont des points projetés pour le Royaume-Uni en M, mais à long terme, je voudrais m'assurer de pouvoir stocker les coordonnées des points pour le monde entier. Quel type de données dois-je utiliser?
J'ai commencé à utiliser decimal(18,12)
, mais je ne savais pas si cette précision était nécessaire ou si je pouvais simplement utiliser a float
. J'ai inclus mon code, au cas où je devrais envisager autre chose:
CREATE TABLE UKTest
(
lat FLOAT,
lng FLOAT
)
Je suis assez nouveau dans SQL, donc je ne sais pas si le type de données est significatif lors de l'exécution d'une requête. J'ai supposé que la mémoire globale varierait en fonction du type de variable. Y a-t-il un avantage à utiliser une base de données spatiale par rapport à une base de données MySQL de base pour ce type de travail?
Sauf si vous êtes lié à MySQL pour une autre raison, vous devriez vraiment envisager d'utiliser une base de données activée spatialement comme postgis qui a un objet Point (et Line, Polygon, etc.) pour gérer ces détails pour vous. Vous bénéficiez également d'un support de projection lorsque vous apportez ce changement dans le monde entier.
2019 : Pour les gens comme moi qui ne lisent pas non plus les commentaires - MySQL prend en charge les types de données spatiales, soi-disant plus lents, sans preuves.
la source