2010-05-21 16 views
5

मेरे पास मेरे आवेदन में धीमी mySQL क्वेरी है जिसे मुझे फिर से लिखना है। समस्या यह है कि, यह केवल मेरे उत्पादन सर्वर पर धीमा है और केवल तभी जब यह कैश नहीं किया जाता है। पहली बार जब मैं इसे चलाता हूं, इसमें 12 सेकंड लगेंगे, फिर उसके बाद यह 500 मिलीसेकंड होगा।MySQL एकल क्वेरी बेंचमार्किंग रणनीतियां

क्या इस क्वेरी का परीक्षण करने के बिना क्वेरी कैश को मारने का कोई आसान तरीका है, इसलिए मैं अपने रिफैक्टरिंग के परिणाम देख सकता हूं?

धन्यवाद!

उत्तर

7

MySQL कैशिंग एकल प्रश्नों को रोकने के लिए समर्थन करता है।

SELECT SQL_NO_CACHE field_a, field_b FROM table; 

वैकल्पिक रूप से आप वर्तमान सत्र के लिए क्वेरी कैश diasble कर सकते हैं का प्रयास करें:

SET SESSION query_cache_type = OFF; 

http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

1

Johannes का अच्छा जवाब देने के लिए जोड़ने के लिए, देखो, मैं क्या है

RESET QUERY CACHE;

इसमें थोड़ा जोड़ा गया फायदे है मैं किसी भी कथन में किसी भी बदलाव की आवश्यकता नहीं है जिसे मैं निष्पादित कर रहा हूं या कनेक्शन।

ऐसा करने के लिए एक छोटी सी चीज है जिसे आप किसी भी तरह से निष्पादित कर रहे हैं, जैसे किसी टिप्पणी में यादृच्छिक संख्या डालना, क्योंकि एक प्रश्न केवल कैश में स्थित हैं, यदि वे कुछ पिछली क्वेरी के बाइट-समान हैं।

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