Vorrei memorizzare alcune posizioni geometriche nel mio database MySQL. Per questo utilizzo il tipo di dati POINT. Quasi ovunque leggo che la funzione GeomFromText
dovrebbe essere utilizzata per inserire dati nella tabella.
Tuttavia, ho scoperto che POINT(X,Y)
funziona anche. Non ho trovato alcuna descrizione del motivo per cui GeomFromText
dovrebbe essere utilizzato invece di POINT
.
Ad esempio ho la seguente semplice relazione:
CREATE TABLE Site (
SiteID BIGINT UNSIGNED,
Position POINT
);
E posso inserire valori usando le seguenti due varianti:
INSERT INTO Site (
1,
GeomFromText( 'POINT(48.19976 16.45572)' )
);
INSERT INTO Site (
2,
POINT(48.19976, 16.45572)
);
Quando visualizzo la tabella ( SELECT * FROM Site
) vedo lo stesso BLOB binario per la posizione e quando visualizzo le coordinate ( SELECT *, AsText(Position) FROM Site
) vedo anche gli stessi valori.
Quindi perché usare GeomFromText? Ci sono differenze di prestazioni (conosciute) tra queste due varianti? Come viene risolto in altri sistemi di database diversi da MySQL?
INSERT INTO Site (Position) SELECT POINT(latitude, longitude) FROM tmp
è più semplice di...SELECT GeomFromText(CONCAT('POINT(',latitude,' ',longitude,')' )) ...