पहले, आइए उन दर्जे के चर पर विचार करें:
ओपन टेबल : टेबल की संख्या जो खुली होती है।
Opened_tables : जो तालिकाएँ खोली गई हैं। यदि Opened_tables बड़ा है, तो आपका table_open_cache मान संभवतः बहुत छोटा है।
आश्चर्यजनक रूप से, आपके प्रश्न का उत्तर प्रश्न के भीतर ही है।
यदि आप मिक्स में एक और स्टेटस वैरिएबल फेंकते हैं, तो दो वैरिएबल केवल अधिक समझ में आएंगे : FLUSH STATUS के बाद ताज़े औसत के लिए Uptime (या Uptime_since_flush स्टेटस )।
आपको Open_tables agsinst (Opened_tables / Uptime) की तुलना करनी चाहिए । यदि Open_tables ऊपर चढ़ता है (Opened_tables / Uptime) , तो अब आपके पास चिंता का कारण है और निम्नलिखित बातों पर ध्यान रखना चाहिए:
UPDATE 2011-08-31 12:18 EDT
कृपया ध्यान दें कि मैंने एक निश्चित अवधि के लिए वृद्धि के Opened_tables पैटर्न को ठीक करने के लिए Uptime के बजाय Uptime_since_flush_status का उपयोग करने का सुझाव भी दिया है ।
उदाहरण के लिए, यदि आप FLUSH STATUS;
प्रत्येक सोमवार आधी रात को दौड़ते हैं, तो आप एक OpenTableFactor उत्पन्न कर सकते हैं:
SELECT *, (Open_tables * Uptime / Opened_Tables) OpenTableFactor FROM
(SELECT variable_value Uptime FROM information_schema.global_status
WHERE variable_name = 'Uptime_since_flush_status') up,
(SELECT variable_value Open_tables FROM information_schema.global_status
WHERE variable_name = 'Open_tables') opn,
(SELECT IF(variable_value=0,1,variable_value) Opened_tables
FROM information_schema.global_status
WHERE variable_name = 'Opened_tables') opnd;
यह ओपन टेबल फैक्टर उस संख्या पर निर्भर करता है, जो दी गई तालिका की औसत संख्या के खिलाफ किसी भी समय खुली तालिकाओं की संख्या का प्रतिनिधित्व करती है, जो दी गई अवधि से गुजरती हैं। एक के साथ FLUSH HOSTS;
हर हफ्ते / दिन / मेजबान, कि औसत सप्ताह / दिन / घंटे के खिलाफ है।
यहाँ मेरे नियोक्ता के ग्राहकों में से एक नमूना है:
mysql> SELECT *, (Open_tables * Uptime / Opened_Tables) OpenTableFactor FROM (SELECT variable_value Uptime FROM information_sc hema.global_status WHERE variable_name = 'Uptime_since_flush_status') up, (SELECT variable_value Open_tables FROM informat ion_schema.global_status WHERE variable_name = 'Open_tables') opn, (SELECT IF(variable_value=0,1,variable_value) Opened_ta bles FROM information_schema.global_status WHERE variable_name = 'Opened_tables') opnd;
+----------+-------------+---------------+-------------------+
| Uptime | Open_tables | Opened_tables | OpenTableFactor |
+----------+-------------+---------------+-------------------+
| 14385123 | 16326 | 30429078 | 7717.996519579068 |
+----------+-------------+---------------+-------------------+
1 row in set (0.00 sec)
यह ग्राहक सामान्य रूप से अधिकतम 7745 OpenTableFactor रखता है। यदि OpenTableFactor अचानक गिरता है (भले ही थोड़ा सा), यह कम ट्रैफ़िक पैटर्न, उच्च गर्भपात वाले संकेत, और इसके आगे संकेत कर सकता है। यदि OpenTableFactor कभी नहीं बदलता है (भले ही थोड़ा), यह आपको इन सेटिंग्स को बदलने के अवसर के साथ प्रस्तुत कर सकता है:
एक बार समायोजित हो जाने के बाद, OpenTableFactor लगातार बदल सकता है या किसी अन्य छत या पठार से टकरा सकता है। इस प्रकार, स्थिति चर के भीतर विभिन्न इकाइयों का उपयोग इस तरह के ट्यूनिंग के लिए महत्वपूर्ण हो जाता है।
UPDATE 2011-08-31 12:42 EDT
OpenTableFactor के लिए मैंने जिस SQL क्वेरी को चलाया, वह MySQL 5.0 और बैक के लिए काम नहीं करती है। यदि आप MySQL प्रशासक या मोनयोग का उपयोग कर रहे हैं , तो आप क्वेरी और मॉनिटर में सूत्र का उपयोग करके एक ग्राफ को अनुकूलित कर सकते हैं। मोनयोग बाद के ऐतिहासिक रेखांकन के लिए SQLLite का उपयोग करके इतिहास एकत्र करता है। यह MySQL के किसी भी संस्करण के लिए किया जा सकता है।