8

ユーザーのリストとGoogleマップの座標(経度と緯度)を保存するテーブルをmysqlで設計しています。

2 つのフィールドが必要ですか、それとも 1 つでもかまいませんか?

何を使っているのかわからない?float、decimal、GEOMETRY、または新しいデータ型は何を使用していますか? それを選択するのに最適なデータ型の長所と短所は何ですか?

4

3 に答える 3

3

このブログでは、適切で迅速な方法について説明しています。

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

于 2012-12-13T11:08:35.583 に答える
2

以下を使用できます。

  • ペアDECIMAL(11, 8)(小数点の前の 3 桁と後の 8 桁)
  • FLOAT

小数点列は正確な値を格納できますが、浮動小数点列は値の近似値を格納することに注意してください。たとえば、10 進数の列の1.999999ように格納され1.999999ますが、浮動小数点の列のように格納され2.0ます。

于 2012-12-13T11:08:26.790 に答える