तो, संक्षेप में,
- अक्षांश और देशांतर का डेटा प्रकार क्या होना चाहिए?
- उदाहरण के लिए पहले 100 निकटतम रेस्तरां पाने के लिए मुझे किस एसक्यूएल कमांड को कॉल करना चाहिए?
विवरण:
मेरे पास अक्षांश और देशांतर के साथ 100k biz रिकॉर्ड है। मैं देखता हूं कि MySQL वास्तव में बिंदु नामक डेटा प्रकार का समर्थन करता है। क्या मुझे इसके बजाय उपयोग करना चाहिए?
क्या MySQL समर्थन KDTree भंडारण प्रणाली http://en.wikipedia.org/wiki/File:KDTree-animation.gif
क्या अक्षांश और देशांतर को संग्रहीत करने के लिए नियमित फ्लोट डेटा प्रकार के बजाय बिंदु डेटा प्रकार का उपयोग करना सबसे अच्छा है?
आखिरकार मैं उदाहरण के लिए 105,6 अंक के निकटतम प्रथम 100 रेस्तरां जैसी चीजों को खोजना चाहता हूं और मेरे डेटाबेस में बहुत सारे बिज़ और अंक हैं। स्पष्ट रूप से हर रिकॉर्ड के लिए एक-एक दूरी तय करना और हर बिंदु के लिए O (n) होगा और इसलिए बेकार है।
ध्यान दें कि मुझे एक सरल समाधान की जानकारी है जिसमें बताया गया है कि कैसे एप्लिकेशन जैसे येल्प डेटा बेस से दूरी की जानकारी को कुशलता से प्राप्त करते हैं और इसे लागू करेंगे कि मेरा स्व भी शुरू हो जाए। यह एक अच्छा जवाब है।
हालांकि, मुझे लगता है कि फसल के जवाब का एक ही चरम है जो कि सही होना चाहिए? वास्तव में, अक्षांश और देशांतर के आधार पर भंडारण का स्थान और इसके नज़दीक सामान ढूंढना एक बहुत ही आम समस्या है, मुझे उम्मीद है कि mysql के लिए एक विशेष डिज़ाइन पैटर्न होना चाहिए। क्या यह ऐसा है?
मैं इसके बारे में और कहाँ जान सकता हूँ? धन्यवाद।