Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL अक्षांश और देशांतर तालिका सेटअप

आपको पॉइंट्स को डेटाटाइप Point . के सिंगल कॉलम में स्टोर करना चाहिए जिसे आप SPATIAL . के साथ अनुक्रमित कर सकते हैं अनुक्रमणिका (यदि आपकी तालिका का प्रकार MyISAM . है ):

CREATE SPATIAL INDEX sx_place_location ON place (location)

SELECT  *
FROM    mytable
WHERE   MBRContains
               (
               LineString
                       (
                       Point($x - $radius, $y - $radius),
                       Point($x + $radius, $y + $radius)
                       )
               location
               )
        AND Distance(Point($x, $y), location) <= $radius

यह "किसी दिए गए दायरे में सभी खोजें" जैसी क्वेरी की गति में अत्यधिक सुधार करेगा।

ध्यान दें कि सादा TM का उपयोग करना बेहतर है ध्रुवीय (अक्षांश और देशांतर) के बजाय मीट्रिक निर्देशांक (पूर्व की ओर और उत्तर की ओर)। छोटे रेडी के लिए, वे काफी सटीक होते हैं, और गणना को बहुत सरल किया जाता है। यदि आपके सभी बिंदु एक गोलार्द्ध में हैं और ध्रुवों से दूर हैं, तो आप एकल केंद्रीय मध्याह्न रेखा का उपयोग कर सकते हैं।

बेशक आप अभी भी ध्रुवीय निर्देशांक का उपयोग कर सकते हैं, लेकिन MBR . की गणना के लिए सूत्र और दूरी अधिक जटिल होगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक बार में एक MySQL में एकाधिक मान सम्मिलित करना

  2. SQL में ROW_NUMBER - SQL और SQL सर्वर में शीर्ष उदाहरण चुनें

  3. mysql में एक कॉलम का नाम बदलने में इतना समय क्यों लगता है?

  4. IPhone ऐप से दूरस्थ MySql डेटाबेस तक कैसे पहुँचें

  5. PHP का उपयोग करके MySQL इंजेक्शन सुरक्षा और भेद्यता संकेत