mysql-普通查询(General Query)慢查询(Slow Query)相关日志配置
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
配置
配置方法一: 服務(wù)啟動時
# vi /etc/my.cnf ... log-output=TABLE,FILE general-log=1 slow-query-log=1# systemctl restart mysqldlog-output默認(rèn)是FILE,還有個值是NONE,就不輸出日志了.我這里演示的是表和日志文件都輸出.
配置方法二: 運(yùn)行時
mysql> set global log_output="table", global general_log=on, global slow_query_log=on;查看
查看相關(guān)變量:
mysql> show variables like 'general%'; +------------------+--------------------------+ | Variable_name | Value | +------------------+--------------------------+ | general_log | ON | | general_log_file | /var/lib/mysql/srv00.log | +------------------+--------------------------+ 2 rows in set (0.00 sec)mysql> show variables like 'slow%'; +---------------------+-------------------------------+ | Variable_name | Value | +---------------------+-------------------------------+ | slow_launch_time | 2 | | slow_query_log | ON | | slow_query_log_file | /var/lib/mysql/srv00-slow.log | +---------------------+-------------------------------+ 3 rows in set (0.00 sec)相關(guān)日志文件:
general_log_file和slow_query_log_file變量指示的文件,可以按需要進(jìn)行修改
日志相關(guān)的表:
mysql> select * from mysql.general_log; mysql> select * from mysql.slow_log;維護(hù)
日志文件
mysql> set global general_log=off; mysql> \! mv /var/lib/mysql/srv00.log /var/lib/mysql/srv00.log.bak mysql> set global general_log=on;或者:
mv /var/lib/mysql/srv00.log /var/lib/mysql/srv00.log.bak mv /var/lib/mysql/srv00-slow.log /var/lib/mysql/srv00-slow.log.bak mysqladmin flush-logs修改日志表原理也是一樣,先暫停,維護(hù)表,再啟用
slow query log相關(guān)參數(shù)
mysql> show variables like 'long%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.01 sec)超過這個秒數(shù)的慢查詢才記錄
mysql> show variables like 'min%'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | min_examined_row_limit | 0 | +------------------------+-------+ 1 row in set (0.00 sec)返回記錄數(shù)超過才記錄
mysql> show variables like 'log_slow_admin%'; +---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | log_slow_admin_statements | OFF | +---------------------------+-------+ 1 row in set (0.00 sec)是否記錄管理類型的sql, 包括:ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, REPAIR TABLE.
mysql> show variables like '%not_using_indexes'; +----------------------------------------+-------+ | Variable_name | Value | +----------------------------------------+-------+ | log_queries_not_using_indexes | OFF | | log_throttle_queries_not_using_indexes | 0 | +----------------------------------------+-------+ 2 rows in set (0.01 sec)沒有使用索引的sql是否要記錄,如果開啟會產(chǎn)生很多記錄,log_throttle_queries_not_using_indexes設(shè)置每分鐘在此范圍內(nèi)只記錄一次.
slow query log 分析
使用工具mysqldumpslow
熟悉oracle的可以認(rèn)為mysqldumpslow是oracle的tkprof
總結(jié)
當(dāng)然開啟都會對服務(wù)器資源消耗.只在需要的時候開啟,不用的時候關(guān)掉.
//END
轉(zhuǎn)載于:https://my.oschina.net/hippora/blog/523950
總結(jié)
以上是生活随笔為你收集整理的mysql-普通查询(General Query)慢查询(Slow Query)相关日志配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RPC调用框架比较分析
- 下一篇: 浅谈SQL注入风险 - 一个Login拿