2009-12-28 14 views
9

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

+0

अच्छी तरह से प्रयास करें :) – Bozho

उत्तर

17

याद रखें! एक ही डेटाबेस में टेबल प्रकारों को मिश्रण करना ठीक है! वास्तव में यह अनुशंसित और अक्सर आवश्यक है। हालांकि, यह ध्यान रखना महत्वपूर्ण है कि यदि दो प्रकारों में शामिल होने पर आपको प्रदर्शन समस्याएं आ रही हैं, तो एक को दूसरे में परिवर्तित करने का प्रयास करें और देखें कि क्या यह ठीक करता है या नहीं। यह मुद्दा अक्सर नहीं होता है लेकिन इसकी सूचना मिली है।

से MySQL - InnoDB vs MyISAM

+1

जैसा कि आपने कहा था, तालिका प्रकारों को मिश्रण करना ठीक है। लेकिन लेनदेन के भीतर टेबल प्रकार मिश्रण करना टालना चाहिए। –

5

ज़रूर ले ली, कि संभव है।

CREATE TABLE MyISAM_tbl(
    .... 
)ENGINE=MyISAM; 

CREATE TABLE InnoDB_tbl (
    .... 
)ENGINE=InnoDB; 

मैं यह सब समय करते हैं, क्योंकि मैं FKS के लिए InnoDB पसंद करते हैं, लेकिन मैं कभी कभी पूर्ण-पाठ खोज के लिए MyISAM की जरूरत है। कभी कोई समस्या नहीं थी।

1

एक शब्द में हाँ। (तालिका बनाएं आपको इंजन प्रकार निर्दिष्ट करने देता है।)

हालांकि, जब आप एकाधिक तालिका प्रकारों में पूछताछ कर रहे हैं तो आपको सावधानी बरतनी होगी। (उदाहरण के लिए आप माईसाम पर विदेशी कुंजी का लाभ नहीं ले सकते हैं और आप एक लेनदेन नहीं कर सकते हैं जो माईसाम टेबल इत्यादि को प्रभावित करता है)

संक्षेप में, मुझे संदेह है कि यह लेने का सबसे अच्छा तरीका नहीं हो सकता है। (जब तक आपको केवल अपने डेटाबेस के शेष हिस्सों से विभाजित टेबलों के परिभाषित सेट के लिए लेन-देन की आवश्यकता नहीं होती है और इनो डीबी बहुत धीमी होती है, तो तेजी से डेटाबेस सर्वर प्राप्त करने से कम दर्दनाक हो सकता है।)

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