मुझ पर तुरंत जो उछल पड़ता है वह है MyISAM .
ASPECT #1 :JOIN ही
जब भी MyISAM और InnoDB से जुड़े जॉइन होते हैं, तो MyISAM की क्वेरी में शामिल होने और एमवीसीसी MyISAM डेटा पर लागू नहीं किया जा सकता है। एमवीसीसी कुछ मामलों में InnoDB पर भी लागू नहीं किया जा सकता है।
ASPECT #2 :MyISAM की भागीदारी
दूसरे दृष्टिकोण से, यदि कोई MyISAM तालिका INSERTs, UPDATEs, या DELETEs के माध्यम से अद्यतन की जा रही है, तो JOIN क्वेरी में शामिल MyISAM तालिकाओं को अन्य DB कनेक्शनों से लॉक कर दिया जाएगा और JOIN क्वेरी को MyISAM तालिकाओं को पढ़े जाने तक प्रतीक्षा करनी होगी। दुर्भाग्य से, यदि JOIN क्वेरी में InnoDB और MyISAM का मिश्रण है, तो InnoDB तालिकाओं को लिखने से रोके जाने के कारण JOIN क्वेरी में अपने MyISAM भागीदारों की तरह एक आंतरायिक लॉक का अनुभव करना होगा।
ध्यान रखें कि MVCC अभी भी READ-UNCOMMITTED और REPEATABLE-READ लेनदेन को ठीक काम करने की अनुमति देगा और कुछ निश्चित होने दें डेटा के दृश्य अन्य लेनदेन के लिए उपलब्ध हो सकते हैं। मैं इसे READ-COMMITTED और SERIALIZABLE . के लिए नहीं कह सकता ।
ASPECT #3 :क्वेरी ऑप्टिमाइज़र
MySQL एक अनुकूलित EXPLAIN योजना निर्धारित करने के लिए इंडेक्स कार्डिनैलिटी पर निर्भर करता है। इंडेक्स कार्डिनैलिटी MyISAM तालिकाओं में तब तक स्थिर रहती है जब तक कि तालिका में बहुत सारे INSERT, UPDATE और DELETE न हो जाएं, जिसके द्वारा आप समय-समय पर OPTIMIZE TABLE
चला सकते हैं। MyISAM तालिकाओं के विरुद्ध। InnoDB इंडेक्स कार्डिनैलिटी कभी स्थिर नहीं होती !!! यदि आप SHOW INDEXES FROM *innodbtable*;
run चलाते हैं , आप हर बार उस कमांड को चलाने पर इंडेक्स कार्डिनैलिटी में बदलाव देखेंगे। ऐसा इसलिए है क्योंकि InnoDB कार्डिनैलिटी का अनुमान लगाने के लिए इंडेक्स में गोता लगाएगा। भले ही आप OPTIMIZE TABLE
run चलाते हैं एक InnoDB तालिका के विरुद्ध, जो केवल तालिका को डीफ़्रैग्मेन्ट करेगा। OPTIMIZE TABLE
ANALYZE TABLE
चलाएगा तालिका के विरुद्ध सूचकांक आँकड़े उत्पन्न करने के लिए आंतरिक रूप से। यह माईसाम के लिए काम करता है। InnoDB इसे अनदेखा करता है।
आपके लिए मेरी सलाह है कि आप सब कुछ करें और सब कुछ InnoDB में परिवर्तित करें और तदनुसार अपनी सेटिंग्स को अनुकूलित करें।
अपडेट 2012-12-18 15:56 EDT
मानो या न मानो, अभी भी InnoDB/MyISAM में शामिल होने पर एक खुला टिकट है अद्यतन के लिए चयन के दौरान . यदि आप इसे पढ़ते हैं, तो यह संकल्प को इस प्रकार सारांशित करता है:ऐसा न करें !!! ।