Katakanlah saya ingin menemukan 20 bisnis terdekat di dekat saya.
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
Ada 1,6 juta biz. Tentu saja bodoh menghitung jarak untuk mereka semua dan mengurutkannya.
Di situlah indeks geo spasial menendang ke kanan?
Jadi apa SQL comman yang harus saya lemparkan?
catatan:
- Saya menggunakan indeks spasial mysql myisam . Namun saya tidak menentukan ini sebelumnya. Jadi saya akan menerima mereka yang menjawabnya untuk menunjukkan penghargaan saya dan mengajukan pertanyaan lain.
- Saya tidak ingin menghitung jarak untuk seluruh tabel
- Saya tidak ingin menghitung jarak untuk wilayah mana pun yang masih tidak efisien
- Saya ingin menghitung jarak untuk jumlah poin yang masuk akal karena saya ingin mengurutkan poin berdasarkan jarak dan dapat menampilkan titik 1-20, 21-40, 41-60, dll.