में मैंने MySQL से कहीं बेहतर है। मैंने तीनों डेटाबेस के साथ काम किया है और उनके बीच माइग्रेशन किया है, इसलिए उम्मीद है कि मैं अभी भी पुरानी पोस्ट में कुछ जोड़ सकता हूं। दस साल पहले मुझे एक बड़े पैमाने पर 450 मिलियन स्थानिक वस्तुओं - जीएमएल से एक स्थानिक डेटाबेस में डेटासेट डालने का काम सौंपा गया था। मैंने MySQL और Postgis को आजमाने का निर्णय लिया, उस समय SQL सर्वर में कोई स्थानिक नहीं था और हमारे पास एक छोटा स्टार्टअप वातावरण था, इसलिए MySQL एक अच्छा फिट लग रहा था। मैं बाद में माईएसक्यूएल में शामिल था, मैंने कुछ सम्मेलनों में भाग लिया/बात की और माईएसक्यूएल में अधिक जीआईएस-अनुरूप कार्यों के बीटा परीक्षण में भारी शामिल था जिसे आखिरकार संस्करण 5.5 के साथ रिलीज़ किया गया था। मैं बाद में हमारे स्थानिक डेटा को पोस्टगिस और हमारे कॉर्पोरेट डेटा (स्थानिक तत्वों के साथ) SQL सर्वर पर माइग्रेट करने में शामिल रहा हूं। ये मेरे निष्कर्ष हैं।
MySQL
1)। स्थिरता के मुद्दों। 5 वर्षों के दौरान, हमारे पास कई डेटाबेस भ्रष्टाचार के मुद्दे थे, जिन्हें केवल इंडेक्स फ़ाइल पर myismachk चलाने से तय किया जा सकता था, एक प्रक्रिया 450 मिलियन पंक्ति तालिका पर 24 घंटे से अधिक समय ले सकती है।
2)। हाल ही में केवल MyISAM तालिकाओं ने स्थानिक डेटा प्रकार का समर्थन किया। इसका मतलब है कि यदि आप लेनदेन समर्थन चाहते हैं तो आप भाग्य से बाहर हैं। InnoDB तालिका प्रकार अब स्थानिक प्रकारों का समर्थन करता है, लेकिन उन पर इंडेक्स नहीं, जो स्थानिक डेटा सेट के सामान्य आकार दिए गए हैं, बहुत उपयोगी नहीं हैं। देखें http://dev.mysql.com/doc/refman/5.0/en/innodb-restrictions.html सम्मेलनों में जाने से मेरा अनुभव यह था कि स्थानिक बहुत ही बाद में विचार किया गया था - हमने प्रतिकृति, विभाजन, आदि लागू किया है, लेकिन यह स्थानिक के साथ काम नहीं करता है। संपादित करें: upcoming 5.7.5 release में इनो डीबी अंततः स्थानिक कॉलम पर इंडेक्स का समर्थन करेगा, जिसका अर्थ है कि एसीआईडी, विदेशी कुंजी और स्थानिक इंडेक्स अंततः उसी इंजन में उपलब्ध होंगे।
3)। पोस्टगिस और एसक्यूएल सर्वर स्थानिक दोनों की तुलना में स्थानिक कार्यक्षमता बेहद सीमित है। वहाँ अभी भी कोई ST_Union समारोह है कि एक पूरे ज्यामिति मैदान पर कार्य करता है, प्रश्नों मैं सबसे अधिक बार चलाने के लिए, यानी में से एक हैं, तो आप नहीं लिख सकते हैं:
select attribute, ST_Union(geom) from some_table group by some_attribute
जो एक जीआईएस संदर्भ में बहुत उपयोगी है। Select ST_Union(geom1, const_geom) from some_table
, यानी, ज्यामिति में से एक हार्ड-कोडित स्थिर ज्यामिति तुलना में थोड़ा सीमित है।
4)। रास्टर्स के लिए कोई समर्थन नहीं। एक डीबी के भीतर संयुक्त वेक्टर-रास्टर विश्लेषण करने में सक्षम होने के नाते बहुत उपयोगी जीआईएस कार्यक्षमता है।
5)। एक स्थानिक संदर्भ प्रणाली से दूसरे में रूपांतरण के लिए कोई समर्थन नहीं।
6)। ओरेकल द्वारा अधिग्रहण के बाद से, स्थानिक वास्तव में पकड़ पर रखा गया है।
कुल मिलाकर, MySQL के लिए उचित होने के लिए यह कई वर्षों तक हमारी वेबसाइट, डब्लूएमएस और सामान्य स्थानिक प्रक्रिया का समर्थन करता है, और इसे स्थापित करना आसान था। नकारात्मक स्तर पर, डेटा भ्रष्टाचार एक मुद्दा था, और माईसाम टेबल का उपयोग करने के लिए मजबूर होने के कारण आप आरडीबीएमएस के बहुत से लाभ छोड़ रहे हैं।
PostGIS
मुद्दों हम MySQL के साथ किया था देखते हुए, हम अंत में PostGIS में बदला। इस अनुभव के मुख्य बिंदु रहे हैं।
1)। चरम स्थिरता। 5 वर्षों में कोई डेटा भ्रष्टाचार नहीं है और अब हमारे पास लोड की अलग-अलग डिग्री के तहत सेंटोस वर्चुअल मशीनों पर लगभग 25 पोस्टग्रेस/जीआईएस बॉक्स हैं।
2)। विकास की तीव्र गति - रास्टर, टोपोलॉजी, 3 डी समर्थन इस के हालिया उदाहरण हैं।
3)। बहुत सक्रिय समुदाय। पोस्टगिस आईआरसी चैनल और मेलिंग सूची उत्कृष्ट संसाधन हैं। Postgis संदर्भ मैनुअल भी उत्कृष्ट है। http://postgis.net/docs/manual-2.0/
4)। ओएसजीओ छतरी, जैसे जिओसेवर और जीडीएएल के तहत अन्य अनुप्रयोगों के साथ बहुत अच्छी तरह से खेलता है।
5)। संग्रहीत प्रक्रियाओं को कई भाषाओं में लिखा जा सकता है, डिफ़ॉल्ट पीपीजीएसक्ल के अलावा, जैसे कि पायथन या आर
5)। पोस्टग्रेज़ एक बहुत ही मानक अनुपालनशील है, पूरी तरह से फीचर्ड आरडीबीएमएस, जिसका उद्देश्य एएनएसआई मानकों के करीब रहना है।
6)। विंडो फ़ंक्शन और रिकर्सिव क्वेरीज़ के लिए समर्थन - MySQL में नहीं, लेकिन SQL सर्वर में। इसने लेखन को अधिक जटिल स्थानिक प्रश्न क्लीनर बना दिया है।
SQL सर्वर।
मैंने केवल SQL Server 2008 स्थानिक कार्यक्षमता का उपयोग किया है, और उस रिलीज की कई परेशानियां - एक सीआरएस से दूसरे में रूपांतरणों के समर्थन की कमी, स्थानिक इंडेक्स में अपने पैरामीटर जोड़ने की आवश्यकता - अब है हल किया गया है।
1)। चूंकि SQL सर्वर में स्थानिक ऑब्जेक्ट मूल रूप से सीएलआर ऑब्जेक्ट्स हैं, इसलिए सिंटैक्स पीछे की ओर महसूस करता है। ST_Area (geom) के बजाय आप geom.STArea() लिखते हैं और जब आप चेन फ़ंक्शन एक साथ करते हैं तो यह और भी स्पष्ट हो जाता है। फ़ंक्शन नामों में अंडरस्कोर को छोड़ना केवल मामूली परेशानी है।
2)। मेरे पास कई अवैध बहुभुज हैं जिन्हें SQL सर्वर द्वारा स्वीकार किया गया है, और ST_MakeValid फ़ंक्शन की कमी से यह थोड़ा दर्दनाक हो सकता है।
3)। केवल विंडोज़ आम तौर पर, माइक्रोसॉफ्ट उत्पादों (जैसे ईएसआरआई वाले) को एक दूसरे के साथ बहुत अच्छी तरह से काम करने के लिए डिज़ाइन किया गया है, लेकिन हमेशा प्राथमिक उद्देश्यों के रूप में मानक के अनुपालन और अंतःक्रियाशीलता नहीं है। यदि आप केवल एक खिड़कियां चला रहे हैं, तो यह कोई मुद्दा नहीं है।
अद्यतन: एसक्यूएल सर्वर 2012 के साथ थोड़ा सा खेला, मैं कह सकता हूं कि यह काफी सुधार हुआ है। अब एक अच्छा ज्यामिति सत्यापन समारोह है, भौगोलिक डेटा प्रकार के लिए एक अच्छा समर्थन है, जिसमें पूर्ण ग्लोब ऑब्जेक्ट भी शामिल है, जो एक से अधिक गोलार्द्ध पर कब्जा करने वाले ऑब्जेक्ट्स का प्रतिनिधित्व करने और Compound Curves and Circular Strings के लिए समर्थन प्रदान करता है जो आर्क के सटीक और कॉम्पैक्ट प्रस्तुतिकरणों के लिए उपयोगी है (और मंडल) अन्य चीजों के साथ। एक सीआरएस से दूसरे में समन्वय को बदलने के लिए अभी भी तीसरे पक्ष के पुस्तकालयों में किया जाना चाहिए, हालांकि यह अधिकांश अनुप्रयोगों में एक शो स्टॉपर नहीं है।
मैंने पोस्टगिस/माईएसक्यूएल के साथ एक की तुलना करने के लिए बड़े पर्याप्त डेटासेट के साथ SQL सर्वर का उपयोग नहीं किया है, लेकिन जो मैंने देखा है, उससे कार्य सही ढंग से व्यवहार करते हैं, और पोस्टगिस के रूप में पूरी तरह से प्रदर्शित नहीं होने पर, यह एक विशाल है MySQL के प्रसाद पर सुधार।
इतने लंबे उत्तर के लिए खेद है, मुझे उम्मीद है कि पिछले कुछ वर्षों में मुझे जो दर्द और खुशी मिली है, वह किसी की मदद कर सकती है।
पोस्टजीआईएस विकल्पों में से सबसे परिपक्व होगा। –
पोस्टजीआईएस अब तक का सबसे परिपक्व जीआईएस समाधान है। और यदि आप आर का उपयोग कर रहे हैं, तो आप आर में संग्रहित प्रक्रियाओं को लिखने के लिए पीएल/आर का उपयोग भी कर सकते हैं। MySQL स्थानिक एक्सटेंशन बहुत पतले हैं और आईएमओ कोशिश करने लायक नहीं है, एसक्यूएल सर्वर जीआईएस संभावनाएं काफी नए हैं और कुछ हद तक सीमित हैं लेकिन मेरे पास है इसके साथ अभी तक कोई अनुभव नहीं है। – Wolph
उत्कृष्ट और महत्वपूर्ण सवाल। तथ्यों के आधार पर राय मूल्यवान हैं। बंद नहीं किया जाना चाहिए था। – ErichBSchulz