0
我有一張表,stores
,有數千個商店提供。如果我有每個商店的lat
,lng
和delivery_radius
(我可以添加一個point
列),那麼查詢表格以查看哪些商店可以傳遞到我目前所在的位置的最有效方法是什麼?MySQL空間查詢來查找傳送到設定點的所有行
我覺得檢查自己和每行之間的距離是否小於delivery_radius
將是一個非常漫長的過程。最好是添加一列來存儲從每行的信息計算出的多邊形,並查看我的當前點是否在該多邊形中(點在多邊形)?還有其他建議嗎?
我想你可能誤解了多邊形。這不會是包含所有商店的單個多邊形。這將是爲每個商店保存的多邊形。這樣我的當前位置可以與該多邊形進行比較。我的理論是,這消除了爲每個商店創建「可用區域」的計算。這是否會改變你對它的看法? 肯定考慮elasticsearch。 –
我其實很不理解你提到的多邊形概念。只是爲了澄清,你的位置是動態的還是靜態的?添加新商店後多邊形如何受到影響?需求是確定可以交付到您當前位置的商店列表嗎?多邊形如何解決這個問題與新的商店添加? – Aruna
我的位置是動態的,它將根據我的位置創建。我所指的多邊形概念是多邊形概念中的一個要點。我目前的位置是一個點,但我可以將每個商店的投放半徑保存爲一個多邊形。通過查看我的當前點是否位於每個商店的多邊形中而不是計算每個商店之間的距離並查看它是否小於或等於半徑來進行搜索會更快嗎? –