私の近くにある20の最も近いビジネスを見つけたいとします。
My table structure is like this:
BusinessID varchar(250) utf8_unicode_ci No None Browse distinct values Change Drop Primary Unique Index Fulltext
Prominent double No None Browse distinct values Change Drop Primary Unique Index Fulltext
LatLong point No None Browse distinct values Change Drop Primary Unique Index Fulltext
FullTextSearch varchar(600) utf8_bin No None Browse distinct values Change Drop Primary Unique Index Fulltext
With selected: Check All / Uncheck All With selected:
Print viewPrint view Propose table structurePropose table structureDocumentation
Add new fieldAdd field(s) At End of Table At Beginning of Table After
Indexes: Documentation
Action Keyname Type Unique Packed Field Cardinality Collation Null Comment
Edit Drop PRIMARY BTREE Yes No BusinessID 1611454 A
Edit Drop Prominent BTREE No No Prominent 0 A
Edit Drop LatLong BTREE No No LatLong (25) 0 A
Edit Drop sx_mytable_coords SPATIAL No No LatLong (32) 0 A
Edit Drop FullTextSearch FULLTEXT No No FullTextSearch 0
160万のビジネスがあります。もちろん、それらすべての距離を計算してから並べ替えるのは愚かです。
それは地理空間インデックスが適切に機能する場所ですか?
それでは、どのSQLコマンドをキャストする必要がありますか?
注意:
- mysql myisam空間インデックスを使用しています。しかし、私はこれを以前に指定しませんでした。ですので、私の感謝の意を表すために答えてくれた方、また別の質問をした方を受け入れます。
- テーブル全体の距離を計算したくない
- まだ非効率的な領域の距離を計算したくない
- ポイントを距離でソートし、ポイント1〜20、21〜40、41〜60などを表示できるようにするため、妥当な数のポイントの距離を計算します。