taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善的CMS管理系统

[MySQL] 啟用query log 與 slow query log功能

2012-03-15

以下範例試用在Centos 5.x,MySQL 5.0環境下

啟用query log功能
以drupal的資料庫連結多,開啟此功能,可預期query log檔案很快就變會很大,建議debug問題時才開啟。

  1. $vi /etc/my.cnf
  2. 在[mysqld]區塊內設定加入

    [mysqld]
    log=/var/log/mysqld.general.log
  3. mysql不會自動依設定產生mysqld.general.log,要手動加。
  4. $ touch /var/log/mysqld.general.log
    $ chown mysql.mysql /var/log/mysqld.general.log
  5. 重新啟動mysqld,用瀏覧器連結網站,查看是否有產出log資料
  6. $ /etc/init.d/mysqld restart
    $ tail -f /var/log/mysqld.general.log

    log資料

     2 Query       SELECT * FROM languages ORDER BY weight ASC, name ASC
     2 Query       SELECT data, created, headers, expire, serialized FROM cache WHERE cid = 'variables:zh-hant'
     2 Query       SELECT COUNT(pid) FROM url_alias
     2 Query       SELECT src FROM url_alias WHERE dst = 'node' AND language IN('zh-hant', '') ORDER BY language DESC, pid DESC


啟用slow query log功能

  1. $ vi /etc/my.cnf
  2. 在[mysqld]區塊內設定加入
    5.0版

    [mysqld]
    // 單位是秒,預設是10秒,最小值是1
    log-slow-queries = 5
    log-slow-queries = /var/log/mysql-slow.log
    log-long-format

    5.1.29版後

    [mysqld]
    slow_query_log
    slow_query_log_file = /var/log/mysql-slow.log
    long_query_time = 5
    log-long-format
  3. mysql不會自動依設定產生mysql-slow.log,要手動加。
  4. $ touch /var/log/mysql-slow.log
    $ chown mysql.mysql /var/log/mysql-slow.log
  5. 重新啟動mysqld,用瀏覧器連結網站,查看是否有產出log資料
  6. $ /etc/init.d/mysqld restart
    $ tail -f /var/log/mysql-slow.log

    log資料

    # Time: 090317 18:46:59
    # User@Host: root[root] @ localhost []
    # Query_time: 12  Lock_time: 0  Rows_sent: 242515  Rows_examined: 242515
    SELECT * FROM `portal`.`search_index`;

使用mysqldumpslow 指令分析mysql-slow.log,結果是耗費最多時間的slow query依順排出。

// query 7次,每次耗費106.43秒
Count: 7  Time=106.43s (745s)  Lock=0.00s (0s)  Rows=9366.9 (65568), aaa[aaa]@localhost
  SELECT * FROM `aaa`.`vtiger_crmentity`
// query 1次,每次耗費58.00秒
Count: 1  Time=58.00s (58s)  Lock=0.00s (0s)  Rows=51515.0 (51515), aaa[aaa]@localhost
  SELECT * FROM `aaa`.`product_mac2`
Count: 1  Time=42.00s (42s)  Lock=0.00s (0s)  Rows=1000.0 (1000), aaa[aaa]@[215.86.72.122]
  SELECT * FROM aaa.product_mac2 LIMIT N
Count: 6  Time=38.00s (228s)  Lock=0.00s (0s)  Rows=130972.3 (785834), aaa[aaa]@localhost
  SELECT * FROM `aaa`.`vtiger_audit_trial`

类别:技术文章 | 阅读:177793 | 评论:0 | 标签:mysql

想收藏或者和大家分享这篇好文章→

“[MySQL] 啟用query log 與 slow query log功能”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

taoCMS发布taoCMS 3.0.2(最后更新21年03月15日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云