假设我想在我附近找到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万个biz。当然,计算所有这些对象的距离然后对其进行排序是愚蠢的。
那就是地理空间索引正确的地方?
那么我需要转换什么SQL逗号?
注意:
- 我正在使用mysql myisam空间索引。但是我之前没有指定。因此,我将接受回答该问题的人表示感谢,并提出另一个问题。
- 我不想计算整个桌子的距离
- 我不想为仍然效率低下的任何区域计算距离
- 我确实想计算合理数量的点的距离,因为我想按距离对点进行排序,并能够显示点1-20、21-40、41-60等。
3
交叉发布dba.stackexchange.com/questions/19595/…(似乎也很难回答每个答案都针对PostGIS的问题)
—
Evan Carroll,