मैं सिर्फ slow query logging मेरी MySQL डेटाबेस पर चालू कर रखी है, जोड़ने /etc/mysql/my.cnf
के लिए निम्न:"SELECT/*! N SQL_NO_CACHE */*` mytable` से "का अर्थ MySQL के धीमे क्वेरी लॉग में क्या है?
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1
जब मैं mysqldumpslow चलाने के लिए, यह निम्नलिखित आउटपुट:
Reading mysql slow query log from mysql-slow.log
Count: 1 Time=199.23s (199s) Lock=0.00s (0s) Rows=32513.0 (32513), ...
SELECT /*!N SQL_NO_CACHE */ * FROM `mytable`
...
मूल mysql-slow.log
को देखते हुए, पूर्ण क्वेरी थी:
SELECT /*!40001 SQL_NO_CACHE */ * FROM `mytable`;
तो mysqldumpslow
बस प्रतिस्थापित N
के साथ संख्या (समान प्रश्नों को एकत्रित करने में सहायता के लिए।)
तो सवाल यह है कि वह क्वेरी कहां से आती है और /*!40001 SQL_NO_CACHE */
बिट का क्या मतलब है?
सबसे अच्छा मैं बता सकता हूं, यह शायद mysqldump
कमांड से है जो बैकअप कर रहा था (इसलिए कैश डेटा नहीं चाहते थे), क्या यह सही लगता है? और यदि ऐसा है, क्योंकि यह केवल 32,000 पंक्तियों को पढ़ता है, तो यह 199 क्यों लेता है?
अन्य टेबलों पर 100 से अधिक, 50s, अधिक उचित 3 एस तक ले जाने के लिए एक समान प्रश्न हैं, जिनमें लगभग 10-20,000 पंक्तियां हैं, जो 450,000 पंक्तियों के साथ सबसे बड़ी हैं।
शायद आप नीचे बेहतर उत्तर स्वीकार कर सकते हैं? – rubo77