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

भू-स्थानिक डेटा के लिए तालिका संरचना

इसे ज्यामिति डेटा प्रकार के रूप में स्टोर करें . MySQL ज्योमेट्री (जेनेरिक), साथ ही पॉइंट, लिनेस्ट्रिंग और पॉलीगॉन डेटा प्रकारों का समर्थन करता है, देखें स्थानिक डेटा प्रकार बनाना . एक एकल देशांतर या अक्षांश मान अपने आप में एक ज्यामिति नहीं हो सकता, जैसा कि आपके स्क्रीन शॉट में होता है।

यदि आप ज्यामिति के प्रकारों का उपयोग करते हैं, तो यह आपको अलग-अलग अक्षांश और देशांतर फ़ील्ड होने पर दो लाभ देता है:आप एक स्थानिक अनुक्रमणिका और आप कुछ MySQL के स्थानिक का उपयोग करने में सक्षम होंगे ऑपरेटर फ़ंक्शन जैसे ST_Buffer, ST_Intersects, ST_Distance आगे का विश्लेषण करने के लिए। स्थानिक अनुक्रमणिकाएँ R-पेड़ों पर आधारित होती हैं और गैर-स्थानिक स्तंभों, अक्षांश और देशांतर पर दो B-वृक्ष अनुक्रमणिकाओं की तुलना में कहीं बेहतर प्रदर्शन करेंगी -- और यह प्रदर्शन अंतर आपकी तालिका के आकार के बढ़ने के साथ बढ़ता जाएगा।

आप अभी भी X और Y बिंदु फ़ंक्शन इसलिए आप अपने डेटा को एक बिंदु के रूप में संग्रहीत करके कुछ भी नहीं खोएंगे।

यदि आपके पास अपना डेटा पहले से ही दो अलग-अलग lat/lon कॉलम में है, और आप ज्योमेट्री/पॉइंट डेटाटाइप रूट पर जाना चाहते हैं, तो आप पॉइंट डेटाटाइप बनाने के लिए पॉइंट फ़ंक्शन का उपयोग कर सकते हैं:

alter table mytable add column pt POINT;
update mytable set pt=Point(longitude, latitude);
alter table mytable modify pt POINT NOT NULL;
create spatial index ix_spatial_mytable_pt ON mytable(pt);

ध्यान दें कि प्वाइंट फ़ंक्शन केवल MySQL 5.1.x में पेश किया गया था (यह बहुत अच्छी तरह से प्रलेखित नहीं है, इसलिए मुझे सटीक संस्करण के बारे में निश्चित नहीं है), और इससे पहले आपको GeomFromText फ़ंक्शन के साथ concat का उपयोग करना था, देखें अक्षांश/लोन टेक्स्ट कॉलम को एक में ले जाना 'बिंदु' प्रकार का स्तंभ इस बारे में कुछ और जानकारी के लिए, हालांकि ध्यान दें कि क्वास्नोई के उत्तर में गलत और गलत तरीके से उत्तर है - यह दूसरी तरफ प्वाइंट (लोन, लैट) नहीं है, हालांकि यह एक बहुत ही सामान्य गलती है।

नोट: कुछ समय पहले तक, आप केवल एक स्थानिक स्तंभ को अनुक्रमित कर सकते थे यदि MyISAM इंजन का उपयोग कर रहे हों।

संपादित करें: आगामी रिलीज़ में, MySQL 5.7 .5 , InnoDB अंतत:स्थानिक डेटा प्रकारों पर अनुक्रमणिका का समर्थन करेगा (और न केवल अनुक्रमणिका के बिना स्थानिक प्रकारों को संग्रहीत करता है, जो काफी कम उपयोगी है)। इसका मतलब है कि आपके पास एक इंजन में विदेशी कुंजी, एसीआईडी ​​​​गारंटियां, स्थानिक अनुक्रमणिकाएं हो सकती हैं, जिन्हें आने में काफी समय हो गया है।



  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/PostgreSQL में IN कीवर्ड की स्पीड

  2. पासवर्ड रीसेट बैकएंड कार्यक्षमता

  3. डेटाबेस मौजूद है लेकिन अज्ञात डेटाबेस कहते हुए एक त्रुटि देता है

  4. MySQL त्रुटि:आपके SQL सिंटैक्स में त्रुटि है; पास में उपयोग करने के लिए सही सिंटैक्स के लिए अपने MySQL सर्वर संस्करण से संबंधित मैनुअल की जाँच करें

  5. जांचें कि क्या mysql में json एन्कोड सरणी में कोई मान मौजूद है