MySQL

2009-06-18 21 views
25

कैसे प्रोफाइल करें I MySQL डेटाबेस कैसे प्रोफाइल करें। मैं डेटाबेस के खिलाफ चल रहे सभी एसक्यूएल देखना चाहता हूं।MySQL

मैं जानता हूँ कि आप यह कर सकते हैं:

  • set profiling=1;
  • अपने धीमी क्वेरी (जैसे SELECT * FROM messages WHERE fromaddress='xxx';
  • SHOW PROFILES;

भागो लेकिन यह केवल करने लगते आदेश पर चलने सामान पर लागू होते हैं लाइन, मैं परिणामों को वेबसाइट चलाने से देखना चाहता हूं।

+1

जाहिर है, कुछ भी आपको वेब साइट पर उन प्रश्नों को चलाने से रोकता है। मुझे लगता है कि आप एक ऐसी विधि के लिए पूछ रहे हैं जो एप्लिकेशन कोड में संशोधन का संकेत नहीं दे रहा है। –

+0

["'दिखाएं प्रोफ़ाइल' को बहिष्कृत किया गया है और भविष्य में रिलीज में हटा दिया जाएगा। कृपया इसके बजाय प्रदर्शन स्कीमा का उपयोग करें।"] (Http://dev.mysql.com/doc/refman/5.7/en/show-profiles.html) – bishop

उत्तर

6

आप query log चाहते हैं - लेकिन स्पष्ट रूप से भारी उत्पादन सर्वर पर ऐसा करना ... मूर्खतापूर्ण हो सकता है।

1

आप वास्तविक समय में क्वेरी लॉग को आसानी से पार्स कर सकते हैं। लिनक्स पर, आप

इसके अलावा लॉग को लाइव देखने के लिए पूंछ -f का उपयोग कर सकते हैं, तो आप इन लोगों से कुछ मुफ्त सॉफ्टवेयर की कोशिश कर सकते हैं:

http://hackmysql.com/mysqlsla

0

MySqlAdministrator कुछ उपयोगी (लॉग देखने के सहित) सुविधाओं में निर्माण किया है, लेकिन लॉग के लिए यह डेटाबेस

3

कि Ubuntu पर मेरे लिए काम किया रूप में एक ही मशीन पर चलने किया जाना है।

अपनी MySQL कॉन्फ़िगरेशन फ़ाइल ढूंढें और खोलें, आमतौर पर उबंटू पर /etc/mysql/my.cnf। अनुभाग का कहना है कि "लॉगिंग और प्रतिकृति"

# * Logging and Replication 
# Both location gets rotated by the cronjob. 
# Be aware that this log type is a performance killer. 

log = /var/log/mysql/mysql.log 

या mysql के नए संस्करण में, कोड

general_log_file  = /var/log/mysql/mysql.log 
general_log    = 1 
log_error    = /var/log/mysql/error.log 

के इस लाइनों बाहर टिप्पणी बस log चर लॉगिंग चालू करने के लिए uncomment के लिए देखो। इस आदेश के साथ MySQL पुन: प्रारंभ करें:

sudo /etc/init.d/mysql restart 

अब हम प्रश्नों की निगरानी के आते ही उन्हें शुरू करने के लिए तैयार हैं एक नया टर्मिनल खोलें और लॉग फ़ाइल स्क्रॉल करने के लिए इस आदेश को चलाने के लिए, यदि आवश्यक हो तो पथ का समायोजन।।

tail -f /var/log/mysql/mysql.log