Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

गति बढ़ाने के लिए MySQL क्वेरी को एक क्वेरी में कम करें

देखें कि क्या मैं वर्तमान में सामान्य लॉग के साथ ट्रैफ़िक कैप्चर कर रहा हूँ:

SELECT @@general_log;   -- 1 if capturing, 0 if not
-- for me, a 1. This means I have been capturing (good for development. Poor idea for Production)

SELECT @@general_log_file; -- file name for General Log if capturing.
-- for me: GeneralLogBegin_20160803_1420.log

SELECT @@datadir; -- the location of the general_log, and other logs
-- for me: C:\ProgramData\MySQL\MySQL Server 5.6\Data\

अब मैं नीचे दिए गए सामान्य लॉग की कैप्चरिंग को बंद कर देता हूं, क्योंकि मेरा कैप्चरिंग हो रहा था:

SET GLOBAL general_log=0; -- stop logging

मैं अपनी लॉग फ़ाइल को एक बैकअप निर्देशिका में ले जाता हूं, उसका नाम बदलकर GL_from_20160803_1420_to_20160806_1559 कर देता हूं

उपरोक्त फ़ाइल में निहित सामग्री और कैप्चर की डेटाटाइम सीमा में थोड़ी अस्पष्टता है।

लॉग फ़ाइल कैप्चर के लिए नया नाम सेट करें (फ़ाइल नाम के लिए सेगमेंट शुरू करें)

SET GLOBAL general_log_file='GeneralLogBegin_20160806_1559.log';
SET GLOBAL general_log=1; -- Start logging again

मेरा एक ऐप चलाएं जो सर्वर से जुड़ता है, और सामान्य लॉग में शामिल हैं:

चंका:

160806 16:08:37   170 Connect   [email protected] on stackoverflow
          170 Query SHOW VARIABLES
          170 Query SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP())
          170 Query SHOW COLLATION
          170 Query SET NAMES latin1
          170 Query SET character_set_results=NULL
          170 Init DB   my_db_name

नोट:आपको करने की आवश्यकता हो सकती है

mysqladmin -u root -p flush-log

(पासवर्ड के लिए संकेत दिया गया) लॉग को कैश से फ़ाइल में फ़्लश करने के लिए। वैसे, उदात्त पाठ वर्तमान में लोड की गई टेक्स्ट फ़ाइल के ऑटो-रीफ्रेश के लिए कमाल है। जैसे, एक लॉग फ़ाइल।

तो मेरा ChunkA ऊपर आने वाले नए कनेक्शन का कनेक्शन स्टब है। यह उपयोग में आने वाले प्रोग्राम के आदेशों द्वारा संचालित होता है, जो कुछ भी हो सकता है। यह आपके प्रोग्राम कमांड से पहले है जिसका आप उपयोग करते हैं और कोड करते हैं। यदि आप लगातार नए कनेक्शन बना रहे हैं, आपके द्वारा लिखे गए कोड को निष्पादित कर रहे हैं, और डिस्कनेक्ट कर रहे हैं, तो ये सभी सामान का हिस्सा हैं। आप उन्हें किसी भी साधारण तरीके से अनुकूलित करने के नियंत्रण में नहीं हैं।

आपको उत्पादन परिवेश में सामान्य क्वेरी लॉग को बंद करने पर विचार करना चाहिए। और केवल डीबग और टेस्ट पर्यावरण सेटिंग्स के दौरान इसे सक्षम करना। इसे चालू रखने से आपके ढेर पर अनावश्यक बोझ बढ़ जाता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql दिनांक शो परिणाम आज/कल/सप्ताह

  2. PHP + MySql + संग्रहीत कार्यविधियाँ, मैं एक आउट वैल्यू कैसे प्राप्त कर सकता हूँ?

  3. MySQL - ब्रेक को छोड़कर दो दिनांक-समय के बीच शुद्ध समय अंतर की गणना करें?

  4. mysql से चार्ट.जेएस में डेटा कैसे प्राप्त करें

  5. एकाधिक पंक्तियों पर SQL क्वेरी