2009-12-24 11 views
13

मेरे पास 2 टेबल हैं जिनमें मुझे अधिक मजबूती चाहिए और सौभाग्य से डेटा और परीक्षा के लगातार तेज़ पूर्ण आवश्यकता की आवश्यकता नहीं है। अन्य सभी टेबल अनिवार्य रूप से माईसाम होंगे।InnoDB और MyIsam तालिकाओं के संयोजन का उपयोग

क्या मैं इंजनों के बीच मतभेदों से प्रभावित होने वाली बग या डेटा से डरने के बिना सुरक्षित रूप से दोनों का उपयोग कर सकता हूं (मैंने इससे कुछ हद तक हतोत्साहित किया है)?

उत्तर

11

हाँ, आप कर सकते हैं।

ध्यान दें कि केवल InnoDB तालिका लेनदेन का समर्थन करती है और FOREIGN KEY संबंध।

26

आप कर सकते हैं, लेकिन इस नुकसान के एक नंबर का परिचय:

  • आपके सर्वर ट्यूनिंग अब जरूरी एक समझौता होगा - या तो आप MyISAM या InnoDB (नायब के लिए सभी स्मृति उपयोग नहीं कर सकते: यह लागू नहीं होता है, तो वे अलग सर्वर पर कर रहे हैं)
  • प्रतिकृति, किनारे मामलों की संख्या में विफल रहता है अगर आप एक असफल लेन-देन जो कुछ MyISAM तालिकाओं में परिवर्तन निहित है, यह न तो सही ढंग से प्रतिबद्ध है और न ही यह रोल बैक
  • सकता है, क्योंकि आप अभी भी कर सकते हैं ' एमवीसीसी का उपयोग करके अपने सर्वर का बैक अप लें, क्योंकि आपको अभी भी माईसाम टी का एक सतत स्नैपशॉट नहीं मिलेगा ables

तो मूल रूप से, मैं आपको पूरी तरह से InnoDB पर स्विच करने के लिए प्रोत्साहित करता हूं। फिर आप माईसाम के बारे में बहुत कुछ भूल सकते हैं और संसाधनों को समर्पित नहीं कर सकते हैं, और इनो डीबी का उपयोग करने के पूर्ण लाभ प्राप्त कर सकते हैं। कोई भी जो माईसैम सोचता है वह तेज़ है या तो इनो डीबी को सही ढंग से ट्यून नहीं कर रहा है, या ऐसे छोटे डेटा हैं जो परवाह करते हैं।

माईसाम तेजी से टेबल स्कैन करता है, लेकिन यदि आप बड़ी टेबल पर कर रहे हैं, तो आपको बड़ी समस्याएं हैं।

+0

अच्छा जवाब मार्कआर, मैं सोच रहा था कि मिश्रित InnoDB/MyIsam डेटाबेस की प्रतिकृति "एज-केस" विफल हो सकती है? केवल InnoDB और MyIsam तालिकाओं को प्रभावित करने वाले लेनदेन का उपयोग करना? क्या आपको लगता है कि किसी भी अन्य मामले में सुरक्षित है? धन्यवाद –

+0

यदि मास्टर पर एक लेनदेन होता है जिसमें माईसाम और innodb टेबल शामिल होते हैं, सफलतापूर्वक काम करता है, तो दास पर, दास पर, इसके InnoDB भाग एक डेडलॉक के साथ विफल रहता है, लेनदेन फिर से मिल जाएगा। हालांकि, लेनदेन के माईसाम हिस्से को वापस नहीं किया जा सकता है, इसलिए दास को इसे दोहराना होगा (और आशा है कि कुछ भी बुरा नहीं होगा) - लेकिन कुछ बुरा हो सकता है, और पूरा दास टूट जाता है (मैन्युअल हस्तक्षेप तक प्रतिकृति रोक दी जाती है) । कई अन्य मामले हैं, यह एक उदाहरण है जिसका मैंने अभी आविष्कार किया था। – MarkR

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