Je voudrais stocker quelques positions géométriques dans ma base de données MySQL. Pour cela, j'utilise le type de données POINT. Presque partout, j'ai lu que la fonction GeomFromText
devait être utilisée pour insérer des données dans le tableau.
Cependant, j'ai découvert que cela POINT(X,Y)
fonctionne également. Je n'ai trouvé aucune description pourquoi GeomFromText
utiliser à la place de POINT
.
Par exemple, j'ai la relation simple suivante:
CREATE TABLE Site (
SiteID BIGINT UNSIGNED,
Position POINT
);
Et je peux insérer des valeurs en utilisant les deux variantes suivantes:
INSERT INTO Site (
1,
GeomFromText( 'POINT(48.19976 16.45572)' )
);
INSERT INTO Site (
2,
POINT(48.19976, 16.45572)
);
Lorsque je vois la table ( SELECT * FROM Site
), je vois le même blob binaire pour l'emplacement, et quand je vois les coordonnées ( SELECT *, AsText(Position) FROM Site
), je vois aussi les mêmes valeurs.
Alors pourquoi utiliser GeomFromText? Existe-t-il des différences de performances (connues) entre ces deux variantes? Comment cela est-il résolu dans d'autres systèmes de base de données que MySQL?
INSERT INTO Site (Position) SELECT POINT(latitude, longitude) FROM tmp
est plus simple que...SELECT GeomFromText(CONCAT('POINT(',latitude,' ',longitude,')' )) ...