जब यह MySQL की बात आती है, तो भंडारण इंजन के बीच कोई तुलना नहीं है, सिवाय इसके कि यह दो बुनियादी श्रेणियों में आता है:
MySQL में कई स्टोरेज इंजन के उपयोग की सुविधा है
सूचीबद्ध भंडारण इंजनों के लिए, ACID- अनुपालन वाले केवल वही लोग हैं जो InnoDB और NDB हैं। इस आयात का उल्लेख क्यों है? दो कारण:
- अन्य भंडारण इंजनों को मूल कोर I / O, CPU उपयोग और समग्र थ्रूपुट के अलावा, अधिक कोर की उपस्थिति के साथ लाभ नहीं मिलता है।
- प्रत्येक गैर-लेन-देन भंडारण इंजन के लिए कोड, जो कि भंडारण इंजन की परवाह किए बिना मूल रूप से 14 आंतरिक संचालन को निर्देशित करता है, को कई कोर की पहुंच का लाभ उठाने के लिए डिज़ाइन नहीं किया गया था।
MySQL 5.5, InnoDB Plugin) के तहत InnoDB, और Percona Server के XtraDB के पास ऐसे विकल्प हैं जिन्हें आप कई कोर तक पहुँचने के लिए सेट कर सकते हैं (Percona Server अब तक ऐसा कर रहा है)। वास्तव में, Percona MySQL के स्रोत कोड के प्रत्येक नए GA रिलीज के साथ विशेष रूप से InnoDB के प्रदर्शन को बढ़ाने के लिए कोड की लगभग 30,000 लाइनों को इंजेक्ट करता है। हम यह सुनिश्चित कर सकते हैं कि ओरेकल ने मल्टीकोर ऑपरेशन (MySQL 5.1.38 के बाद से) के लिए InnoDB के भीतर चलने के लिए अपने स्वयं के थिंक टैंक से अपनी खुद की संवर्द्धन को शामिल किया है।
पंक्ति / पृष्ठ लॉकिंग के साथ संयोजन में डेटा पर MVCC प्रदर्शन करने की आवश्यकता के साथ, लेनदेन प्रदर्शन अब इंस्ट्रूमेंट, मापा और कॉन्फ़िगर किया जा सकता है।
अगर एक चीज है जो मैंने कई कोर का उपयोग करने के बारे में सीखा है, तो यह है कि आपको InnoDB को प्रभावी ढंग से ट्यून करना होगा और न केवल बॉक्स से बाहर InnoDB पर भरोसा करना चाहिए ।
अद्यतन 2011-09-20 08:03 EDT
सभी कोर से लाभान्वित होने वाले इनोबीडी के संबंध में, हमें चीजों को दृढ़ता से रखने की आवश्यकता है। डेटाबेस सर्वर में कोर को अन्य मामलों (ओएस, डिस्क, मेमोरी, एप्लिकेशन, मॉनिटरिंग, आदि) में भी जाना चाहिए। मामूली बजट वाले लोगों के लिए, कई के पास एक डेटाबेस सर्वर भी होता है जो NFS प्रदान करता है, मुनिन से निगरानी, JBoss, PHP के लिए ऐप समर्थन और सूची जारी करता है। यदि आप MySQL चाहते हैं, तो अधिक विशेष रूप से InnoDB, अधिक कोर का उपयोग करने के लिए, डेटाबेस सर्वर को विशेष रूप से MySQL के लिए समर्पित होना चाहिए और ओएस / डिस्क / मेमोरी को केवल MySQL के लिए उपयोग करना चाहिए । इस दृष्टिकोण को देखते हुए, InnoDB एक संदेह के साथ अधिक कोर संलग्न करेगा ।
InnoDB प्लगइन के लिए के रूप में, यह केवल MySQL (एह, Oracle, की ओर से एक बेहतर InnoDB है करने के लिए पहले पहल दिखाने के लिए उल्लेख किया गया था। क्षमा करें, अभी भी अभी तक जीभ रोल नहीं करता है)। अधिक मुख्य गतिविधि को बुलाने के लिए नए चर MySQL 5.1.38 से स्पष्ट हो गए।
उदाहरण के लिए, innodb_read_io_threads और innodb_write_io_threads (दोनों MySQL 5.1.38 के बाद से) पढ़े और लिखने के लिए निर्दिष्ट थ्रेड की संख्या आवंटित करते हैं। डिफ़ॉल्ट 4 और अधिकतम 64 है। डिफ़ॉल्ट और अधिकतम सेटिंग्स इतनी अलग (4 - 64) होने से पता चलता है कि आप इसे कॉन्फ़िगर करते समय InnoDB बहुआयामी और कोर गहन है !!!
InnoDB के साथ अधिक कोर तक पहुंचने के लिए MySQL समुदाय की जरूरतों को संबोधित करते हुए पेरकोना ने नेतृत्व किया था। नतीजतन, MySQL ने सूट का पालन करना शुरू कर दिया। मुझे यह स्वीकार करना होगा कि ओरेकल (yuck) ने अधिक कोर गतिविधि के लिए आवश्यक सुधार किए हैं।