ジオメトリデータ型
として保存します 。 MySQLは、Geometry(generic)、およびPoint、Linestring、Polygonデータ型をサポートしています。
ジオメトリタイプを使用するルートを使用する場合、緯度と経度のフィールドを個別に設定するよりも2つの利点があります。
XおよびYポイント関数 したがって、データをポイントとして保存しても何も失われません。
すでに2つの別々のlat/lon列にデータがあり、ジオメトリ/ポイントデータ型ルートに移動する場合は、Point関数を使用してPointデータ型を作成できます。
alter table mytable add column pt POINT;
update mytable set pt=Point(longitude, latitude);
alter table mytable modify pt POINT NOT NULL;
create spatial index ix_spatial_mytable_pt ON mytable(pt);
Point関数はMySQL5.1.xでのみ導入されたことに注意してください(十分に文書化されていないため、正確なバージョンはわかりません)。その前に、GeomFromText関数でconcatを使用する必要がありました。
注: 最近まで、MyISAMエンジンを使用している場合にのみ、空間列にインデックスを付けることができました。
編集: 今後のリリースでは、 MySQL 5.7 .5 、InnoDBは、最終的に空間データ型のインデックスをサポートします(インデックスなしで空間型を格納するだけでなく、かなり有用性が低くなります)。これは、外部キー、ACID保証、空間インデックスをすべて1つのエンジンに含めることができることを意味します。これは、長い間待ち望まれていました。