Я хотел бы сохранить некоторые геометрические позиции в моей базе данных 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,')' )) ...