वेब अनुप्रयोगों के लिए MySQL बनाम PostgreSQL [बंद]


122

मैं पायथन (Django) का उपयोग कर एक वेब एप्लिकेशन पर काम कर रहा हूं और यह जानना चाहूंगा कि उत्पादन के लिए तैनात करते समय MySQL या PostgreSQL अधिक उपयुक्त होगा या नहीं।

एक पॉडकास्ट में जोएल ने कहा कि उन्हें MySQL के साथ कुछ समस्याएं थीं और डेटा सुसंगत नहीं था।

मैं जानना चाहूंगा कि क्या किसी को ऐसी कोई समस्या थी। इसके अलावा जब यह प्रदर्शन की बात आती है जिसे आसानी से साझा किया जा सकता है?

जवाबों:


127

भविष्य के पाठकों के लिए एक नोट: नीचे दिए गए पाठ को आखिरी बार अगस्त 2008 में संपादित किया गया था। लगभग 11 साल पहले यह संपादित किया गया था। सॉफ़्टवेयर संस्करण से संस्करण में तेज़ी से बदल सकता है, इसलिए नीचे दी गई सलाह के आधार पर DBMS चुनने से पहले, यह देखने के लिए कुछ शोध करें कि क्या यह अभी भी सटीक है। नीचे नए उत्तर के लिए जाँच करें।


बेहतर?

MySQL बहुत अधिक सामान्यतः वेब होस्ट द्वारा प्रदान किया जाता है।

PostgreSQL एक अधिक परिपक्व उत्पाद है।

नहीं है इस चर्चा के अपने "बेहतर" प्रश्न को संबोधित

जाहिरा तौर पर, इस वेब पेज के अनुसार , MySQL तेजी से होता है जब समवर्ती पहुंच का स्तर कम होता है, और जब लिखने की तुलना में कई अधिक रीड होते हैं। दूसरी ओर, यह बढ़ते लोड के साथ कम मापनीयता प्रदर्शित करता है और अनुपात को लिखता / पढ़ता है। PostgreSQL कम सुगमता के स्तर पर अपेक्षाकृत धीमा है, लेकिन उच्च स्तर पर धीमेपन से बचने / अनुपात को पढ़ने / पढ़ने के लिए समवर्ती अभिगम के बीच पर्याप्त अलगाव प्रदान करते हुए, लोड स्तर को बढ़ाने के साथ अच्छी तरह से तराजू। यह कई प्रदर्शन तुलनाओं से जुड़ता है, क्योंकि ये चीजें बहुत संवेदनशील होती हैं ... स्थितियों के प्रति संवेदनशील होती हैं।

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

जब यह मायने रखता है।

यह संभवत: ऐसा नहीं है, इसलिए जो भी आपको पसंद हो उसका डेटाबेस चुनें और उसके साथ जाएं; बेहतर प्रदर्शन अधिक रैम और सीपीयू, और अधिक उपयुक्त डेटाबेस डिज़ाइन, और चतुर संग्रहीत कार्यविधि ट्रिक्स और इसी तरह से खरीदा जा सकता है - और यह सब यादृच्छिक-वेबसाइट-एक्स के लिए सस्ता और आसान है जिस पर लेने, MySQL या PostgreSQL लेने की तुलना में अधिक है। , और महंगे डीबीए से विशेषज्ञ ट्यूनिंग।


जोएल ने उस पॉडकास्ट में यह भी कहा कि टिप्पणी उसे काटने के लिए वापस आ जाएगी क्योंकि लोग कह रहे थे कि MySQL बकवास का एक टुकड़ा था - जोएल countको पंक्तियों का एक वापस नहीं मिल सका । उपाख्यान का बहुवचन डेटा नहीं है। उसने कहा :

MySQL एकमात्र ऐसा डेटाबेस है जिसे मैंने अपने करियर में कभी भी प्रोग्राम किया है जिसमें डेटा अखंडता की समस्या थी, जहां आप प्रश्न करते हैं और आपको बकवास उत्तर मिलते हैं, यह गलत है।

और उसने भी कहा:

यह सिर्फ एक किस्सा है। और यह उन चीजों में से एक है जो मुझे निराश करती है, वास्तव में, ब्लॉगिंग या सामान्य रूप से इंटरनेट के बारे में। [...] सच्चाई में उपाख्यानों को बनाने की एक अजीब प्रवृत्ति है और मैं वास्तव में एक ब्लॉगर के रूप में इस बारे में थोड़ा सा दोषी महसूस करना शुरू कर रहा हूं


15
और एक अन्य बिंदु यह है कि, यदि आप एक रूपरेखा का उपयोग करते हैं, तो आप डेटाबेस से अपने कोड को सार करने में सक्षम हो सकते हैं, ताकि आप आसानी से स्विच कर सकें।
डॉन जोंस

"कौन सा तेज है?" । निर्भर करता है कि आप क्या चाहते हैं, यदि आप ACID आज्ञाकारी डेटाबेस चाहते हैं, तो इसे पढ़ें: randombugs.com/linux/mysql-postgresql-benchmarks.html
Sacx

47
नोट के योग्य भी। MySQL ओरेकल के स्वामित्व में है। इसलिए, इसे कभी भी अपने भुगतान किए गए उत्पादों के साथ प्रतिस्पर्धा करने की अनुमति नहीं दी जाएगी।
unixman83

15

बस कई महीनों के बाद में।

दोनों डेटाबेस की भौगोलिक क्षमताएं बहुत अलग हैं। PostgreSQL में असाधारण PostGIS एक्सटेंशन है। MySQL की भौगोलिक कार्यक्षमता तुलनात्मक रूप से शून्य है।

यदि आपकी वेब सेवा में स्थान घटक है, तो PostgreSQL चुनें।


14

मैंने Django का उपयोग नहीं किया है, लेकिन मैंने MySQL और PostgreSQL दोनों का उपयोग किया है। यदि आप अपने डेटाबेस का उपयोग केवल Django के लिए बैकएंड के रूप में कर रहे हैं, तो यह ज्यादा मायने नहीं रखता है, क्योंकि यह अधिकांश अंतरों को दूर कर देगा। PostgreSQL थोड़ा अधिक स्केलेबल है, क्योंकि यह डेटा-आकार / क्लाइंट-काउंट वृद्धि के रूप में MySQL के रूप में तेजी से ईंट की दीवार से नहीं टकराता है।

असली अंतर तब आता है जब आप एक नई व्यवस्था कर रहे होते हैं। तब मैं PostgreSQL को हाथ नीचे करने की सलाह दूंगा, क्योंकि इसमें बहुत अधिक विशेषताएं हैं जो आपकी DB परत को अधिक अनुकूलन योग्य बनाते हैं, ताकि आप इसे किसी भी आवश्यकता के अनुरूप ठीक कर सकें।


7

हालाँकि यह थोड़ा पुराना है, लेकिन यह MySQL Gotchas पेज पढ़ने लायक होगा । सूचीबद्ध वस्तुओं में से कई अभी भी सच हैं, मेरे ज्ञान का सबसे अच्छा करने के लिए।

मैं PostgreSQL का उपयोग करता हूं।


6

मैं बड़े पैमाने पर दोनों का उपयोग करता हूं। किसी विशेष परियोजना के लिए मेरी पसंद उबलती है:

  • लाइसेंसिंग - क्या आप अपना ऐप (IANAL) वितरित करने जा रहे हैं
  • मौजूदा इन्फ्रास्ट्रक्चर और नॉलेज बेस
  • आपके पास कोई विशेष सॉस

द्वारा विशेष सॉस मैं जैसी चीजों का मतलब:

  • आसान / सस्ता प्रतिकृति = MySQL
  • छोटे परिणामों के साथ विशाल डेटासेट समस्याएँ = PostgreSQL। भाषा एक्सटेंशन का उपयोग करें, और बहुत कुशल डेटा संचालन करें। (पीएल / पायथन, पीएल / टीसीएल, पीएल / पर्ल, आदि)
  • R सांख्यिकीय लायब्रेरीज़ के साथ इंटरफ़ेस = डेबियन / ubuntu में उपलब्ध PostgreSQL PL / R

3
पोस्टग्रैज में आसान / सस्ता प्रतिकृति भी है। यह बस में निर्मित नहीं है , क्योंकि वहाँ से चुनने के लिए आधा दर्जन, प्रत्येक अपने स्वयं के अच्छे और बुरे भागों के साथ। तो आप MySQL के लिए एक औसत प्रतिकृति, या PostgreSQL के लिए कई में से एक चुन सकते हैं । आपकी पंसद।
रैंडल श्वार्ट्ज

6
PostgreSQL 9.0+ में अंतर्निहित बाइनरी वाल प्रतिकृति है जो सेटअप करने के लिए बहुत आसान है।
शॉन

1

ठीक है, मुझे नहीं लगता कि आपको पिछले विकास (निर्माण, मंचन, ठेस) में एक अलग डेटाबेस ब्रांड का उपयोग करना चाहिए क्योंकि यह आपको काटने के लिए वापस आ जाएगा।

कैसे मैं इसे समझता हूं कि PostgreSQL एक अधिक 'सही' डेटाबेस कार्यान्वयन है जबकि mySQl कम सही (कम आज्ञाकारी) लेकिन तेज है।

तो अगर आप एक बहुत लिख रहे हैं एक CRUD आवेदन mySQL जाने का रास्ता है। यदि आपको अपने डेटाबेस से बाहर कुछ विशेषताओं की आवश्यकता है (यदि आपको यकीन नहीं है तो आप नहीं करते हैं) तो आप पोस्टग्रेक्यूएल में देखना चाह सकते हैं।


1

यदि आप एक ऐसा एप्लिकेशन लिख रहे हैं जो अलग-अलग सर्वर पर काफी वितरित हो सकता है, तो पोर्टेबिलिटी के कारण MySQL PostgreSQL पर बहुत अधिक भार वहन करता है। PostgreSQL संतोषजनक वेब होस्ट से कम पर खोजना मुश्किल है, हालांकि कुछ ही हैं। ज्यादातर मामलों में, PostgreSQL MySQL की तुलना में धीमी है, खासकर जब यह अंत में ठीक ट्यूनिंग की बात आती है। सब सब में, मैं PostgreSQL को थोड़े समय के लिए एक शॉट देने के लिए कहूंगा, इस तरह से आप इसे पूरी तरह से टाल नहीं रहे हैं, और फिर एक निर्णय लें।


1
मैं आपसे सहमत हूँ कि अधिक कम गुणवत्ता वाले वेब-होस्ट्स को हमारे चेहरे पर MySQL shoving के बजाय एक विकल्प प्रदान करना चाहिए। हालाँकि, जब साझा होस्टिंग के साथ जा रहे हैं तो आप उन पर दया करें। तो एक डीबीएम विकल्प उतना मायने नहीं रखता है।
unixman83 15

0

धन्यवाद। मैंने MySQL के साथ Django का उपयोग किया है और यह ठीक है। अपने डेटाबेस को उन विशेषताओं पर चुनें, जिनकी आपको ज़रूरत है। MySQL और Postgres की तुलना करना मुश्किल है। SQl सर्वर को पोस्टग्रेजुएशन की तुलना करने के लिए बेहतर है।


0

@WolfmanDragon

PostgreSQL में वस्तुओं के लिए (छोटे) समर्थन है, लेकिन यह स्वभाव से, एक संबंधपरक डेटाबेस है। इसके बारे में पृष्ठ से :

PostgreSQL एक शक्तिशाली, ओपन सोर्स रिलेशनल डेटाबेस सिस्टम है।


2
ऑब्जेक्ट-रिलेशनल डेटाबेस मैनेजमेंट सिस्टम ISA रिलेशनल डेटाबेस मैनेजमेंट सिस्टम। यदि आप PostgSQL प्रलेखन में आगे पढ़ते हैं, तो आप पाएंगे कि PostgSql एक ORDBMS है। शायद आप ORDBMS को ODBMS जैसे ऑब्जेक्टिविटी / DB के साथ भ्रमित कर रहे हैं।
वुल्फमैनड्रैगन

-1

MySQL एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम है जबकि PostgreSQL एक ऑब्जेक्ट -रेशनल डेटाबेस मैनेजमेंट सिस्टम है । PostgreSQL C ++ या Java Developers के लिए अनुकूल है, क्योंकि यह हमें इस बात पर अधिक नियंत्रण देता है कि प्रश्न कैसे लिखे जाते हैं। ORDBMS हमें ऑब्जेक्ट्स और यूजर डिफाइंड टाइप्स भी देता है। SQL क्वेरी MySQL की तुलना में ISO मानकों के बहुत करीब हैं।
क्या आपको ORDBMS या RDBMS की आवश्यकता है? जो आपके प्रश्न का बेहतर उत्तर देगा।


यह एक oversimplification के थोड़े है; सिर्फ इसलिए कि आपको ORDBMS की आवश्यकता नहीं है, इसका मतलब यह नहीं है कि आपको MySQL के साथ जाना चाहिए। अन्य महत्वपूर्ण अंतर हैं, नहीं?
डॉन जोंस

1
तुम सही हो। मैं एक PostgreSQL ढकेलनेवाला की तरह आवाज नहीं करने की कोशिश कर रहा हूँ। जब तक डिज़ाइन एक सच्चे ऑब्जेक्ट डेटाबेस के लिए कॉल नहीं करता मुझे PostgreSQL के अलावा कुछ भी उपयोग करने का कोई वास्तविक कारण नहीं दिखता है। मुझे लगता है कि इसके अलावा अन्य लोगों से परिचित होने के अलावा MySQL का कोई मतलब नहीं है।
वोल्फमैनड्रैगन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.