2011-06-29 17 views
12

मुझे उस सिस्टम के लाइव संस्करण पर प्रदर्शन समस्याएं आ रही हैं जिन्हें मैं स्थानीय रूप से पुन: पेश नहीं कर सकता।किसी सूचकांक में पूर्ण कार्डिनालिटी एक समस्या है - MySQL 5.x

लाइव के साथ डेटाबेस की स्थानीय प्रतियों पर कुछ EXPLAIN परिणामों की तुलना में, मुझे लगता है कि लाइव पर कुछ स्थानों में बहु-क्षेत्रीय इंडेक्स का उपयोग नहीं किया जाता है लेकिन स्थानीय रूप से होते हैं, और आगे की जांच से पता चलता है कि ये इंडेक्स लाइव पर न्यूल की एक कार्डिनिटी है।

मुझे लगता है कि यह समस्या है, लेकिन नल कार्डिनिटी का क्या अर्थ है और क्या यह एक सूचकांक का उपयोग नहीं करेगा? क्या ऑप्टिमाइज़ इसे ठीक करेगा और क्या इसे आवर्ती करने का कोई साधन है? मेरे पास लाइव MySQL डेटाबेस तक पूर्ण पहुंच नहीं है इसलिए विश्लेषण और अनुकूलन मेरी सामान्य क्षमताओं के बाहर हैं।

किसी भी उत्तर के लिए बहुत धन्यवाद!

+0

इस प्रासंगिक प्रतीत होता है: http://bugs.mysql.com/bug.php?id=40983 –

उत्तर

1

एफएसबी के उपयोगी खोज के अनुसार, मुझे लगता है कि आप MyISAM का उपयोग कर रहे हैं, और सुझाव देंगे कि आप इनो डीबी में जाएं, जिसे अब कुछ वर्षों के लिए बेहतर टेबल इंजन माना गया है।

इनो डीबी की कई विशेषताओं में से एक automatic maintenance of indexes है।

15

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

गैर-नल कार्डिनिटी महत्वपूर्ण है/MySQL के लिए उस इंडेक्स का उपयोग करने के लिए आवश्यक है।

कार्डिनालिटी के बारे में थोड़ा सा: यह एक क्षेत्र की विशिष्टता का एक उपाय है। उस क्षेत्र पर अधिक अद्वितीय (उच्च मूल्य) अधिक प्रभावी सूचकांक होगा और कम रिकॉर्ड छुआ जाएंगे। पूर्ण कार्डिनालिटी 0 (शून्य) कार्डिनालिटी के समान नहीं है।
इस पढ़ें: SHOW INDEX

- जे जे -