MySQLデータベースにいくつかの幾何学的位置を保存したいと思います。このために、POINTデータ型を使用します。ほぼすべての場所GeomFromText
で、テーブルにデータを挿入するために関数を使用する必要があることを読みました。
しかし、私POINT(X,Y)
もそれが機能することがわかりました。のGeomFromText
代わりにを使用する理由についての説明が見つかりませんでしたPOINT
。
たとえば、次の単純な関係があります。
CREATE TABLE Site (
SiteID BIGINT UNSIGNED,
Position POINT
);
そして、次の2つのバリアントを使用して値を挿入できます。
INSERT INTO Site (
1,
GeomFromText( 'POINT(48.19976 16.45572)' )
);
INSERT INTO Site (
2,
POINT(48.19976, 16.45572)
);
テーブル(SELECT * FROM Site
)を表示すると、場所に同じバイナリBLOBが表示され、座標(SELECT *, AsText(Position) FROM Site
)を表示すると、同じ値が表示されます。
では、なぜGeomFromTextを使用する必要があるのでしょうか?これら2つのバリアントの間に(既知の)パフォーマンスの違いはありますか?これはMySQL以外のデータベースシステムでどのように解決されますか?
INSERT INTO Site (Position) SELECT POINT(latitude, longitude) FROM tmp
簡単です...SELECT GeomFromText(CONCAT('POINT(',latitude,' ',longitude,')' )) ...