我想在我的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,')' )) ...