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

उपयोगकर्ता के स्थान के आधार पर क्वेरी डेटाबेस मान

एक प्रश्न है जो विभिन्न स्थानिक डेटाबेस की क्षमताओं की तुलना करता है, GIS:PostGIS/PostgreSQL बनाम MySql बनाम SQL सर्वर? , जहां Postgis MySQL पर एक बहुत स्पष्ट विजेता है।

चाहे आप MySQL या Postgis का उपयोग करें, यदि आप कर सकते हैं, तो आप अपने अक्षांश और देशांतर मानों को ज्यामिति/भूगोल (बिंदु) के रूप में संग्रहीत कर सकते हैं, जो कि आस-पास की चीजों को खोजने के लिए उपयोग किए जा सकने वाले कार्यों के रूप में बेहतर होगा, ST_Distance , ST_Distance_Sphere और अधिक अस्पष्ट <-> ऑपरेटर , देखें इसके लिए निकटतम पड़ोसियों को खोजें PostGIS का उपयोग करके प्वाइंट दिया गया? (उदाहरण के लिए उपयोग) सीधे ज्यामिति/भूगोल स्तंभों पर काम करते हैं। इससे भी महत्वपूर्ण बात यह है कि आप एक स्थानिक अनुक्रमणिका . जोड़ सकते हैं , जो इन कार्यों को ठीक से काम करने की आवश्यकता है, जो अलग-अलग अनुक्रमित अक्षांश और देशांतर स्तंभों पर खोजों को बड़े अंतर से बेहतर प्रदर्शन करेगा (यह तालिका आकार पर निर्भर करेगा, लेकिन तालिका आकार बढ़ने पर बढ़ेगा),

Postgis में, आप lat और lon को एक ज्यामिति में परिवर्तित कर सकते हैं:

alter table mytable add column geom (Geometry, 4326);
update mytable set geom = ST_SetSRID(ST_MakePoint(lon, lat), 4326)
create index ix_spatial_mytable_geom on mytable using gist(geom);

इस बिंदु पर, आप उपरोक्त लिंक में किसी भी उदाहरण का उपयोग करके अन्य बिंदुओं के निकट बिंदुओं को खोजने के लिए बहुत ही कुशल प्रश्नों में सक्षम होंगे।

आप MySQL में इसी तरह की चीजें कर सकते हैं, हालांकि, यह एक स्थानिक संदर्भ प्रणाली का समर्थन नहीं करता है, अर्थात, ऊपर 4326, जिसका अर्थ है lat/lon, और इसमें ST_MakePoint फ़ंक्शन का अभाव है, इसलिए आपको STGeomFromText का उपयोग करना होगा और lat/ एक बिंदु बनाने के लिए एक साथ लोन। यह प्लैनर निर्देशांक में भी सब कुछ करता है, जैसा कि क्लाउडियो और अन्य ने कहा है, जो पोस्टगिस के साथ कोई समस्या नहीं है।

मैं एक लंबे और कुछ हद तक मूर्त उत्तर के लिए क्षमा चाहता हूं, लेकिन बड़ी मात्रा में डेटा (MySQL, SQL Server और Postgres/GIS) पर डेटाबेस के बीच विभिन्न माइग्रेशन किए और रास्ते में बहुत सारी गलतियां कीं, मुझे आशा है कि मैं आपको इसमें सेट कर सकता हूं सही दिशा (और भविष्य के प्रूफिंग में थोड़ा सा जोड़ें, यदि आप कुछ अन्य स्थानिक कार्यक्षमता का उपयोग शुरू करना चाहते हैं, जो पोस्टिग्स में हुकुम है)।



  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. सूची <int> को mysql पैरामीटर में जोड़ें

  3. Google PHP सरणी से निरंतर एक्स-अक्ष चार्ट करता है

  4. पीडीओ फ़ेच केवल पहली पंक्ति लौटाता है

  5. एक कॉलम नंबर का उपयोग करके MySQL में किसी टेबल से कॉलम को कैसे ड्रॉप करें