2010-11-15 10 views
8

स्थिति दिखाएं:MySQL में कैश किए गए प्रश्नों को कैसे सूचीबद्ध करें? (Qcache_queries_in_cache) 'Qcache_queries_in_cache' रिटर्न की तरह

+-------------------------+----------+ 
| Variable_name   | Value | 
+-------------------------+----------+ 
| Qcache_queries_in_cache | 327  | 
+-------------------------+----------+ 

मैं इन 327 प्रश्नों प्रिंट कैसे करूं?

mysql कैशिंग को अनुकूलित करने के प्रयास में मैं "मांग पर" कैशिंग में स्विच करने का प्रयास करना चाहता हूं। लेकिन इससे पहले कि मैं एक निश्चित समझ प्राप्त करना चाहता हूं कि कौन से प्रश्नों को कैश किया जा रहा है या त्याग दिया जा रहा है। मैंने mysql दस्तावेज़, google, और stackoverflow खोज की कोशिश की लेकिन कोई भाग्य नहीं।

उत्तर

8

AFAIK एसक्यूएल प्रश्न केवल उनके हैश क्यूके में संग्रहीत नहीं हैं। तो यह जानने का कोई तरीका नहीं है कि अब कौन से प्रश्न कैश किए गए हैं, आप अपनी क्वेरी में से एक निष्पादित करते हैं और मूल्य कॉलम के परिवर्तन देखते हैं।

+0

thx ... मैं एक उत्पादन सर्वर पर हूं और कई प्रश्नों को निष्पादित कर रहा हूं और परिवर्तनों को खोजना काम नहीं करेगा। मैं किसी तरह के डीबग मोड की उम्मीद कर रहा था। – user508627

+0

क्या उन हैंशों को पाने का कोई तरीका है? – simbabque

2

आप क्वेरी अपने query_id के लिए शो प्रोफ़ाइल की जाँच करके

SET SESSION PROFILING=on; 
show profiles; 

अब एक सत्र विशिष्ट चर रूपरेखा सक्षम करते हैं;

mysql> show profile for query 2; 

+--------------------------------+----------+ 
| Status       | Duration | 
+--------------------------------+----------+ 
| starting      | 0.000017 | 
| checking query cache for query | 0.000005 | 
| checking privileges on cached | 0.000003 | 
| sending cached result to clien | 0.000005 | 
| logging slow query    | 0.000002 | 
| cleaning up     | 0.000001 | 
+--------------------------------+----------+ 

स्थिति कॉलम की जांच करके आप देख सकते हैं कि प्रश्न कैश किए गए हैं या नहीं।

लेकिन यह केवल एक सत्र विशिष्ट है जिसे आपने प्रत्येक सत्र के लिए प्रोफाइलिंग सक्षम कर दिया है।

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