ユーザーのリストとGoogleマップの座標(経度と緯度)を保存するテーブルをmysqlで設計しています。
2 つのフィールドが必要ですか、それとも 1 つでもかまいませんか?
何を使っているのかわからない?float、decimal、GEOMETRY、または新しいデータ型は何を使用していますか? それを選択するのに最適なデータ型の長所と短所は何ですか?
このブログでは、適切で迅速な方法について説明しています。
http://www.rooftopsolutions.nl/blog/229
CREATE TABLE geo (
longitude DOUBLE,
latitude DOUBLE,
idxlong SMALLINT,
idxlat SMALLINT,
INDEX (idxlong,idxlat);
);
パート 2 にはベンチマークが含まれています: http://www.rooftopsolutions.nl/blog/230
method small medium large
plain select 1.73s
index on latitude 0.72s
using point field 9.52s
using point field + spatial index 0.00s 0.73s 18.82s
using morton number 0.78s
index on morton 0.00s 0.65s 3.23s
また、実際のパート 3: http://www.rooftopsolutions.nl/blog/231
以下を使用できます。
DECIMAL(11, 8)
(小数点の前の 3 桁と後の 8 桁)FLOAT
小数点列は正確な値を格納できますが、浮動小数点列は値の近似値を格納することに注意してください。たとえば、10 進数の列の1.999999
ように格納され1.999999
ますが、浮動小数点の列のように格納され2.0
ます。