내 주변에서 가장 가까운 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 등을 표시 할 수 있기 때문에 합리적인 수의 점에 대한 거리를 계산하고 싶습니다.