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,')' )) ...