2012-03-02 21 views
21

मैं Django के लिए नया हूं और केवल Djqango में डेटाबेस इंजन के रूप में sqlite3 का उपयोग कर रहा हूं। अब मैं जिन अनुप्रयोगों पर काम कर रहा हूं उनमें से एक मॉडल की जटिलता और अनुरोध/दूसरे के संदर्भ में काफी बड़ा हो रहा है।Django ऐप के लिए कौन सा डेटाबेस इंजन चुनना है?

Django द्वारा समर्थित डेटाबेस इंजन प्रदर्शन के संदर्भ में तुलना कैसे करते हैं? उनमें से किसी का उपयोग करने में कोई समस्या है? और आखिरी लेकिन कम से कम नहीं, एक बार जब आप किसी के लिए इस्तेमाल करते हैं तो किसी दूसरे इंजन पर स्विच करना कितना आसान होता है? धन्यवाद!

उत्तर

25

यदि आप एक रिलेशनल डेटाबेस का उपयोग करने जा रहे हैं, तो Django समुदाय में सबसे लोकप्रिय PostgreSQL लगता है। यह मेरा निजी पसंदीदा है। लेकिन, मोंगोडीबी पाइथन/डीजेगो समुदाय में भी बहुत लोकप्रिय हो रहा है (हालांकि मैंने कभी इसके साथ एक परियोजना नहीं की है)। MySQL पर भी कई सफल परियोजनाएं हैं। लेकिन, मैं व्यक्तिगत रूप से PostgreSQL 9.0 या 9.1 पसंद करता हूं। उम्मीद है की यह मदद करेगा।

संपादित करें: मैंने इस पोस्ट के साथ उस काम का बहुत अच्छा काम नहीं किया है। बस कुछ और विचार जोड़ना चाहते हैं।

वेबसाइटों की विशाल बहुमत के लिए, या तो MySQL या PostgreSQL ठीक काम करेगा। दोनों की ताकत और कमजोरियां हैं। मेरा सुझाव है कि आप "MySQL बनाम PostgreSQL" Google पर इस खोज के लिए बहुत सारी हिट हैं (इस समय लिखने पर, मुझे 3,000,000 से अधिक मिलते हैं)। यहां अपना मूल्यांकन करने में कुछ सुझाव दिए गए हैं।

  1. अधिक हाल के लेखों को मजबूत प्राथमिकता दें। यह सुनिश्चित करने का प्रयास करें कि आप MySQL 5.5 की तुलना PostgreSQL 9.0 या 9.1 से कर रहे हैं।
  2. MySQL चलो आप अपना स्टोरेज इंजन चुनते हैं। आईएमओ, सेब की तुलना में ऐप्पल को बंद करता है पोस्टग्रेज़ में InnoDB है।
  3. ध्यान रखें कि आपको इनो डीबी या पोस्टग्रेस की सभी सुविधाओं की आवश्यकता नहीं हो सकती है। आपको कुछ अन्य स्टोरेज इंजन भी देखना चाहिए।

इसके अलावा, यदि आप अपने सिस्टम में किसी भी ट्रिगर्स का उपयोग करने की योजना बना रहे हैं, तो वहां से संबंधित कुछ मायनेक्ल और इनो डीबी और एसीआईडी ​​अनुपालन के साथ वास्तव में कुछ गड़बड़ियां हैं। यहां the first one है और यहां another one है। आपको इस कार्यक्षमता की आवश्यकता नहीं हो सकती है, बस इसके बारे में जागरूक रहें।

एक आखिरी चीज जो आपके लिए एक अंतर डाल सकती है वह है कि PostgreSQL के साथ आप पाइथन के साथ डीबी फ़ंक्शन लिख सकते हैं। इसके लिए यहां एक link to the docs है।

+3

ध्यान दें कि MongoDB गैर संबंधपरक, इसलिए बहुत Django से बॉक्स से बाहर समर्थित डेटाबेस के लिए अलग है। मैं PostgreSQL या MySQL की सिफारिश करता हूं। – Alasdair

3

MySQL और PostgreSQL Django के साथ सबसे अच्छा काम करता है। मैं अत्यधिक सुझाव देता हूं कि जब आप एक चुनते हैं कि आप विकास के दौरान इसका उपयोग करने के लिए अपनी विकास सेटिंग्स बदलते हैं (देव मोड में एसक्लाइट 3 और प्रोड में "वास्तविक" डेटाबेस का उपयोग करने का विरोध करते हैं) क्योंकि सूक्ष्म व्यवहार संबंधी मतभेद हैं जो बहुत सारे सिरदर्द पैदा कर सकते हैं भविष्य।

11

माईएसक्यूएल और पोस्टग्रेस Django समुदाय में उपयोग किए जाने वाले दो सबसे आम डीबी बैकएंड हैं और तुलनात्मक प्रदर्शन है। मैं इस बात से सहमत हूं कि पोस्टग्रेस Django समुदाय में अधिक लोकप्रिय है हालांकि मेरे पास इसे वापस करने के लिए कोई कठिन संख्या नहीं है। मैं निश्चित रूप से MySQL पर लेने के लिए इसका मतलब यह नहीं है, लेकिन मैं जब Django के साथ MySQL (या MySQL सामान्य रूप में) का उपयोग कर हम कुछ कठिनाइयों देखते हैं कहेंगे: MyISAM (अब 5.5 में डिफ़ॉल्ट के साथ

  1. कोई लेनदेन समर्थन करते हैं।5)
  2. datetimes के लिए कोई मिलीसेकंड समर्थन
  3. अद्वितीय चरित्र क्षेत्रों कम से कम 255 वर्ण
  4. डिफ़ॉल्ट मिलान होना चाहिए datetimes के लिए कोई समय क्षेत्र समर्थन केस-संवेदी है

पर कुछ डॉक्स रहे हैं Django की विभिन्न विशेषताएं जो विभिन्न डीबी बैकएंड पर समर्थित नहीं हैं: https://docs.djangoproject.com/en/1.3/ref/databases/

+2

IMHO PostgreSQL MySQL से कहीं अधिक उन्नत और मजबूत है, लेकिन MySQL अधिक सर्वव्यापी है। कई "क्लाउड" प्रदाताओं के पास MySQL संगत है जो स्केल बहुत अच्छी तरह से प्रदान करता है। –

+0

@MarkLavin असमर्थित सुविधाओं की सूची के लिए धन्यवाद, मुझे इनमें से कुछ सीमाओं के बारे में कोई जानकारी नहीं थी। MySQL बनाम PostgreSQL की तुलना करने से यह मेरे लिए उत्तर को अधिक स्पष्ट बनाता है। –

+0

कोई समस्या नहीं है। उनमें से कुछ नाबालिग हैं लेकिन जब आप उनमें भागते हैं तो वे आश्चर्यजनक या निराशाजनक हो सकते हैं। –

3

मुझे यकीन नहीं है कि कौन सी डीबी का उपयोग करना है, लेकिन यदि कोई मोंगोडीबी का उपयोग करने की योजना बना रहा है, तो ध्यान रखें कि यह केवल पीई 2 के लिए काम करता है, न कि पी 3 के लिए।

संदर्भ लिंक:

Project Setup with Django 1.10, mongodb and Python 3.4.3

Error while setting up MongoDB with django using django mongodb engine on windows

Setting up MongoDB + Django

संबंधित मुद्दे