डेटाबेस के साथ मेरा अनुभव काफी छोटे वेब अनुप्रयोगों के साथ है, लेकिन अब मैं पूरे राज्य के लिए मतदाता जानकारी के डेटासेट के साथ काम कर रहा हूं। लगभग 3.5 मीटर मतदाता हैं और मुझे उनके पते, मतदान इतिहास, आयु इत्यादि के आधार पर उन पर काफी रिपोर्टिंग करने की आवश्यकता होगी। वेब एप्लिकेशन स्वयं Django के साथ लिखा जाएगा, इसलिए मेरे पास डेटाबेस के कुछ विकल्प हैं MySQL और PostgreSQL।क्या MySQL 3.5 एम + पंक्तियों के साथ एक पठनीय डेटाबेस के लिए उपयुक्त है? यदि हां, तो कौन सा इंजन?
अतीत में मैंने लगभग विशेष रूप से MySQL का उपयोग किया है क्योंकि यह इतना आसानी से उपलब्ध था। मुझे एहसास है कि एक टेबल में 3.5 मीटर पंक्तियां वास्तव में बहुत अधिक नहीं हैं, लेकिन यह सबसे बड़ा डेटासेट है जिसे मैंने व्यक्तिगत रूप से काम किया है, इसलिए मैं अपने व्यक्तिगत आराम क्षेत्र से बाहर हूं। साथ ही, यह प्रोजेक्ट एक त्वरित फेंकने वाला एप्लिकेशन नहीं है, इसलिए मैं यह सुनिश्चित करना चाहता हूं कि मैं नौकरी के लिए सबसे अच्छा डेटाबेस चुनूं और न कि केवल मुझे सबसे ज्यादा आरामदायक लगे।
यदि MySQL नौकरी के लिए एक उपयुक्त उपकरण है, तो मैं यह भी जानना चाहूंगा कि यह InnoDB या MyISAM का उपयोग करने के लिए समझ में आता है या नहीं। मैं दोनों के बीच बुनियादी मतभेदों को समझता हूं, लेकिन कुछ सूत्रों का कहना है कि माईसाम का उपयोग गति के लिए करना है, लेकिन यदि आप "असली" डेटाबेस चाहते हैं, तो इनओडीबीबी, जबकि अन्य कहते हैं कि MySQL के सभी आधुनिक उपयोगों को इनो डीबी का उपयोग करना चाहिए।
धन्यवाद!
+1 - मेरी भावनाएं बिल्कुल। मैं अब तक माईसाम का उपयोग नहीं करता जब तक कि मेरे पास कोई विशिष्ट कारण न हो। यह बहुत सक्षम है, मैं बिना किसी समस्या के 20 मिलियन + रिकॉर्ड वाले टेबल के साथ काम करता था, लेकिन इनो डीबी की लेनदेन क्षमताओं में आमतौर पर किसी भी प्रदर्शन अंतर से अधिक होता है जब तक आप विशिष्ट प्रदर्शन समस्याओं का सामना नहीं करते हैं। – zombat
धन्यवाद टिम! क्या मैं आपको "अपनी इंडेक्स को ध्यान से ट्यून करें" पर विस्तार करने के लिए कह सकता हूं? मुझे इंडेक्स का उद्देश्य मिलता है, लेकिन मुझे यकीन नहीं है कि ट्रेडऑफ क्या है - यानी सब कुछ इंडेक्स क्यों नहीं। मैं इंडेक्स को ट्यून करने का क्या मतलब है उससे थोड़ा उलझन में हूं - मैं उस छाप के नीचे था जिसे आपने एक कॉलम इंडेक्स करने का फैसला किया था या नहीं। –
जब आप कोई अनुक्रमणिका बनाते हैं, तो आप आवेषण करते समय अतिरिक्त ओवरहेड जोड़ते हैं (अधिक नहीं, केवल थोड़ा, लेकिन यह जोड़ता है)। यदि आप सब कुछ सूचीबद्ध करते हैं, तो यह वास्तव में चीजों को धीमा कर सकता है। इंडेक्स एक फ़ील्ड, फ़ील्ड के पहले एन बाइट्स (या वर्ण), या दो या दो से अधिक फ़ील्ड पर आधारित हो सकते हैं। आपको "क्वेरी समझाएं" टूल के साथ काम करने की ज़रूरत है और अपने सिस्टम को अपने विशेष डेटा सेट और आमतौर पर चलने वाली खोजों के लिए सर्वश्रेष्ठ मिश्रण का पता लगाने के लिए बेंचमार्क करें। अधिक जानकारी के लिए यहां mysql दस्तावेज़ देखें: http://dev.mysql.com/doc/refman/5.0/en/create-index.html। –