Я хотел бы сохранить некоторые геометрические позиции в моей базе данных MySQL. Для этого я использую тип данных POINT. Почти везде я читал, что эту функцию GeomFromTextследует использовать для вставки данных в таблицу.
Однако я узнал, что это POINT(X,Y)тоже работает. Я не нашел описания, почему GeomFromTextследует использовать вместо POINT.
Например, у меня есть следующее простое отношение:
CREATE TABLE Site (
SiteID BIGINT UNSIGNED,
Position POINT
);
И я могу вставить значения, используя следующие два варианта:
INSERT INTO Site (
1,
GeomFromText( 'POINT(48.19976 16.45572)' )
);
INSERT INTO Site (
2,
POINT(48.19976, 16.45572)
);
Когда я просматриваю таблицу ( SELECT * FROM Site), я вижу тот же двоичный объект для местоположения, и когда я просматриваю координаты ( SELECT *, AsText(Position) FROM Site), я также вижу те же значения.
Так зачем использовать GeomFromText? Есть ли (известные) различия в производительности между этими двумя вариантами? Как это решается в других системах баз данных, чем MySQL?
INSERT INTO Site (Position) SELECT POINT(latitude, longitude) FROM tmpпроще, чем...SELECT GeomFromText(CONCAT('POINT(',latitude,' ',longitude,')' )) ...