मेरी राय में शामिल गणित के कारण WHERE क्लॉज धीमा होने वाला है, और WHERE क्लॉज में फ़ंक्शंस का उपयोग डेटाबेस को क्वेरी को गति देने के लिए इंडेक्स का उपयोग करने से रोकेगा - इसलिए, वास्तव में, आप प्रत्येक रेस्तरां की जांच करेंगे डेटाबेस, और हर बार जब आप कोई प्रश्न करते हैं, तो हर पंक्ति पर ग्रेट-सर्कल गणित का प्रदर्शन करते हैं।
व्यक्तिगत रूप से मैं एक वर्ग के टॉपलेफ्ट और बॉटमराइट को-ऑर्डिनेट्स की गणना करता हूं (जिसे केवल पाइथागोरस का उपयोग करके क्रूडली गणना करने की आवश्यकता होती है) जो कि आप जिस श्रेणी की तलाश कर रहे हैं, उसके बराबर पक्षों के साथ, और फिर छोटे उपसमुच्चय पर अधिक जटिल WHERE क्लॉज टेस्ट करें। रिकॉर्ड जो उस अक्षांश/लंबे वर्ग के भीतर हैं।
डेटाबेस में लेट एंड लॉन्ग पर एक इंडेक्स के साथ क्वेरी
WHERE MyLat >= @MinLat AND MyLat <= @MaxLat AND MyLong >= @MinLong AND MyLong <= @MaxLong
बहुत कुशल होना चाहिए
(कृपया ध्यान दें कि मुझे विशेष रूप से केवल MS SQL के MySQL का कोई ज्ञान नहीं है)