शुरुआत के लिए, मैंने इन पंक्तियों को /etc/my.cnf में रखा
[mysqld]
log-output=TABLE
slow-query-log
slow-query-log-file=slow-queries.log
जब आप log_output को TABLE होने के साथ धीमी लॉग का उपयोग करते हैं, तो तालिका IS / var / lib / mysql में नहीं बनाई गई है। तालिका mysql फ़ोल्डर, / var / lib / mysql / mysql में बनाई गई है। डिफ़ॉल्ट टेबल-आधारित धीमी लॉग के लिए भंडारण इंजन CSV है। आप निम्न कार्य करके इसकी जाँच कर सकते हैं:
use mysql
show tables;
आपको टेबल को धीमा देखना चाहिए
MySQL> show create table slow_log\G
*************************** 1. row ***************************
Table: slow_log
Create Table: CREATE TABLE `slow_log` (
`start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user_host` mediumtext NOT NULL,
`query_time` time NOT NULL,
`lock_time` time NOT NULL,
`rows_sent` int(11) NOT NULL,
`rows_examined` int(11) NOT NULL,
`db` varchar(512) NOT NULL,
`last_insert_id` int(11) NOT NULL,
`insert_id` int(11) NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`sql_text` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
1 row in set (0.00 sec)
यहाँ कैसे CSV फ़ाइल को धीमी लॉग टेबल के लिए MyISAM में परिवर्तित किया जाए
SET @old_log_state = @@global.slow_query_log;
SET GLOBAL slow_query_log = 'OFF';
ALTER TABLE mysql.slow_log ENGINE = MyISAM;
SET GLOBAL slow_query_log = @old_log_state;
ध्यान रखें कि परिवर्तित MyISAM में कोई इंडेक्स नहीं है।
यह 'start_time' नामक एक कॉलम है जो टाइमस्टैम्प है। इसे इस तरह अनुक्रमित करने के लिए स्वतंत्र महसूस करें:
SET @old_log_state = @@global.slow_query_log;
SET GLOBAL slow_query_log = 'OFF';
ALTER TABLE mysql.slow_log ADD INDEX (start_time);
SET GLOBAL slow_query_log = @old_log_state;
हमें पता है कि यह कैसे काम किया, कृपया !!!
my.cnf
रूप में अच्छी तरह से