2012-10-19 10 views
26

मैं अपने अध्ययन के लिए एक वेब-ऐप लिख रहा हूं जिसमें पूर्ण टेक्स्ट खोज और विदेशी कुंजी शामिल हैं।MySQL का MyISAM इंजन विदेशी कुंजी का समर्थन क्यों नहीं करता है?

मैंने कहीं पढ़ा है, MyISAM इंजन पूर्ण टेक्स्ट खोज के लिए उपयुक्त है, और विदेशी कुंजी के लिए InnoDB।

इस स्थिति में मैं सर्वोत्तम प्रदर्शन के लिए किस इंजन का उपयोग करना चाहिए?

  • MyISAM विदेशी कुंजी संबंधों का समर्थन क्यों नहीं करता है लेकिन InnoDB करता है?
  • MyISAM पूर्ण पाठ खोज का समर्थन क्यों करता है लेकिन InnoDB नहीं करता है?
+1

'कहीं और कहां है? मेरा मानना ​​है कि यह समझाया गया है कि 'कहीं भी' – ajreal

+5

विशेषताएं डिफ़ॉल्ट रूप से मौजूद नहीं हैं। किसी को उन्हें लागू करने की जरूरत है। –

+0

@ajreal मैंने अपनी कॉलेज पुस्तक से पढ़ा है। वह किताब इंजन के लाभ और नुकसान के बारे में बताती है। – Firefox101

उत्तर

38
  1. कृपया मुझे बताओ, इस स्थिति क्या इंजन मैं प्रदर्शन में सुधार के लिए उपयोग करने के लिए है?

    प्रत्येक स्टोरेज इंजन का प्रदर्शन आपके द्वारा किए गए प्रश्नों पर निर्भर करेगा। हालांकि, ध्यान रखें कि एक ही डेटाबेस के भीतर विभिन्न टेबल विभिन्न स्टोरेज इंजन का उपयोग कर सकते हैं।

  2. क्यों MyISAM इंजन विदेशी कुंजी संबंधों का समर्थन नहीं करता है और InnoDB करता है?

    Foreign Key Differences के तहत दस्तावेज के रूप में:

    बाद के चरण में, विदेशी कुंजी की कमी MyISAM तालिकाओं के लिए भी लागू किया जाएगा।

    इसलिए, विदेशी कुंजी बाधाओं को अभी तक MyISAM में लागू नहीं किया गया है।

संपादित: जैसा कि टिप्पणी डॉक्स से निकाल दिया जाता है, ऐसा लगता है कि यह नहीं रह गया है MyISAM इंजन में विदेशी कुंजी की कमी को लागू करने की योजना बनाई है कि।

  1. क्यों MyISAM इंजन पूर्ण पाठ खोज का समर्थन करता है और InnoDB नहीं करता है?

    What Is New in MySQL 5.6 के तहत दस्तावेज के रूप में:

    आप InnoDB टेबल पर FULLTEXT अनुक्रमणिका बनाने के लिए, और MATCH() ... AGAINST वाक्य रचना का उपयोग कर उन्हें क्वेरी कर सकते हैं।

    इसलिए, पूर्ण पाठ खोज InnoDB में MySQL 5.6 के रूप में लागू की गई है।

+3

मुझे उद्धरण नहीं दिख रहा है "बाद के चरण में, विदेशी कुंजी बाधाओं को भी माईसाम टेबल के लिए लागू किया जाएगा।" MySQL दस्तावेज़ में। शायद यह सुविधा गैर-रोडमैप की गई है? – shabbychef

+0

@shabbychef: आप सही हैं-ऐसा लगता है कि टिप्पणी [10 सितंबर, 2013] के बीच कुछ समय हटा दी गई थी (http://web.archive.org/web/20130910041553/http://dev.mysql.com/doc /refman/5.6/en/ansi-diff-foreign-keys.html) और [11 अक्टूबर, 2013] (http://web.archive.org/web/20131011141007/http://dev.mysql.com/doc /refman/5.6/en/ansi-diff-foreign-keys.html); वर्तमान दस्तावेज में मुझे कहीं और संदर्भ नहीं दिख रहा है यह इंगित करने के लिए कि एफके बाधाएं अभी भी भविष्य में माईसाम के लिए हैं, और न ही मैं इस बदलाव के लिए कोई विशिष्ट दस्तावेज/चर्चा/रिकॉर्ड देख सकता हूं। तो हाँ, मुझे लगता है कि यह अब योजनाबद्ध नहीं है। – eggyal

0

मुझे उन दिनों को याद है जब MySQL के पास केवल मायिसम था और innodedb विकास में था। MyIsam की कोई विदेशी कुंजी नहीं है क्योंकि यह पुरानी प्रणाली है जो डेटाबेस में संबंधों का समर्थन नहीं करती है। यह विदेशी कुंजी का कभी भी उपयोग नहीं करेगा! इसका इस्तेमाल करने के लिए आप innodb है।यदि आपको सभी चीजों की आवश्यकता नहीं है, जैसे कि डीबी में संबंध, बेहतर प्रदर्शन प्राप्त करने के लिए माईसाम का उपयोग करें।

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