Me gustaría almacenar algunas posiciones geométricas en mi base de datos MySQL. Para esto utilizo el tipo de datos POINT. Casi en todas partes leí que la función GeomFromTextdebería usarse para insertar datos en la tabla.
Sin embargo, descubrí que POINT(X,Y)también funciona. No encontré ninguna descripción de por qué GeomFromTextdebería usarse en lugar de POINT.
Por ejemplo, tengo la siguiente relación simple:
CREATE TABLE Site (
SiteID BIGINT UNSIGNED,
Position POINT
);
Y puedo insertar valores usando las siguientes dos variantes:
INSERT INTO Site (
1,
GeomFromText( 'POINT(48.19976 16.45572)' )
);
INSERT INTO Site (
2,
POINT(48.19976, 16.45572)
);
Cuando veo la tabla ( SELECT * FROM Site) veo el mismo blob binario para la ubicación, y cuando veo las coordenadas ( SELECT *, AsText(Position) FROM Site) también veo los mismos valores.
Entonces, ¿por qué se debe usar GeomFromText? ¿Existen diferencias de rendimiento (conocidas) entre estas dos variantes? ¿Cómo se resuelve esto en otros sistemas de bases de datos que MySQL?
INSERT INTO Site (Position) SELECT POINT(latitude, longitude) FROM tmpes más simple que...SELECT GeomFromText(CONCAT('POINT(',latitude,' ',longitude,')' )) ...