日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql dba系统学习(8)查询日志文件功能 mysql dba系统学习(9)slow query log慢查询日志功能

發(fā)布時間:2025/3/21 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql dba系统学习(8)查询日志文件功能 mysql dba系统学习(9)slow query log慢查询日志功能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

查詢?nèi)罩镜淖饔檬怯涗浰锌蛻舳税l(fā)來的sql語句,也就是記錄客戶端的所有操作


Log參數(shù)將要過時,現(xiàn)在用general_log來代替


打開查詢?nèi)罩竟δ?/span>

mysql> showvariables like "%log";

+----------------+-------+

| Variable_name| Value |

+----------------+-------+

| back_log| 50|

| general_log| OFF|

| log| OFF|

| relay_log||

| slow_query_log | OFF|

| sync_binlog| 0|

+----------------+-------+

6 rows in set (0.01 sec)


mysql> set global general_log=1;

Query OK, 0 rows affected (0.18 sec)


mysql> set globallog=1;

Query OK, 0 rows affected, 1 warning (0.00sec)


mysql> showvariables like "%log";

+----------------+-------+

| Variable_name| Value |

+----------------+-------+

| back_log| 50|

| general_log| ON|

| log| ON|

| relay_log||

| slow_query_log | OFF|

| sync_binlog| 0|

+----------------+-------+

6 rows in set (0.00 sec)



也可以在my.cnf中添加參數(shù)

general_log=1

general_log_file=/tmp/chenzhongyang.log這樣來設(shè)定



mysql> show variables like"%file";

+---------------------+-----------------------------------------+

| Variable_name| Value|

+---------------------+-----------------------------------------+

| ft_stopword_file| (built-in)|

| general_log_file| /tmp/chenzhongyang.log|

| init_file||

| local_infile| ON|

| pid_file|/usr/local/mysql/var/test4.wolf.org.pid |

| relay_log_info_file | relay-log.info|

| slow_query_log_file |/usr/local/mysql/var/test4-slow.log|

+---------------------+-----------------------------------------+



查看日志文件的內(nèi)容


[root@test4 ~]# tail -f/tmp/chenzhongyang.log

/usr/local/mysql/libexec/mysqld, Version:5.1.70-log (Source distribution). started with:

Tcp port: 3306Unix socket: /tmp/mysql.sock

TimeId CommandArgument

130903 16:09:431 Connectroot@localhost on

1 Queryselect@@version_comment limit 1

130903 16:10:141 Queryshow variables like "%file"

130903 16:12:091 Queryselect * fromtt

130903 16:12:161 QuerySELECT DATABASE()

1 Init DBtest

130903 16:12:181 Queryselect * fromtt



一般情況下我們不打開查詢?nèi)罩竟δ?#xff0c;因為他對系統(tǒng)效率的影響很大



管理查詢?nèi)罩疚募?/span>

一般的日志文件會很大,所以要處理日志

[root@test4 ~]# mysqladminflush-logs;刷新日志所有日志文件


from:?http://wolfword.blog.51cto.com/4892126/1287978




慢查詢?nèi)罩?#xff08;不包括獲取鎖的時間)

1,開啟慢查詢?nèi)罩竟δ?/span>

? ? 以前的版本中開啟慢查詢?nèi)罩竟δ艿膮?shù)是--log_slow_queries在my.cnf文件中指定,但是現(xiàn)在新的版本中用參數(shù)--slow_query_log和--slow_query_log_file來指定

slow_query_log=1
slow_query_log_file=/tmp/mysqlslow.log
?重新啟動mysql

mysql> show variables like "%slow%";
+---------------------+--------------------+
| Variable_name ? ? ? | Value ? ? ? ? ? ? ?|
+---------------------+--------------------+
| log_slow_queries ? ?| ON ? ? ? ? ? ? ? ? |
| slow_launch_time ? ?| 2 ? ? ? ? ? ? ? ? ?|
| slow_query_log ? ? ?| ON ? ? ? ? ? ? ? ? |
| slow_query_log_file | /tmp/mysqlslow.log |
+---------------------+--------------------+
4 rows in set (0.00 sec)



2,慢查詢相關(guān)的 參數(shù)long_query_time?

當(dāng)查詢超過long_query_time指定的時間,那么就會記錄在慢查詢?nèi)罩疚募?#xff0c;默認(rèn)是10秒

mysql> show variables like "%long%";
+--------------------+-----------+
| Variable_name ? ? ?| Value ? ? |
+--------------------+-----------+
| long_query_time ? ?| 10.000000 |

我們來吧時間調(diào)短試試,看看什么變化

mysql> set session long_query_time=1; ??調(diào)到1秒
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "%long%";
+--------------------+----------+
| Variable_name ? ? ?| Value ? ?|
+--------------------+----------+
| long_query_time ? ?| 1.000000 |
| max_long_data_size | 1048576 ?|
+--------------------+----------+
2 rows in set (0.00 sec)

mysql> use test;
Database changed
mysql> create table t as select * from information_schema.tables;
Query OK, 53 rows affected (0.12 sec)
Records: 53 ?Duplicates: 0 ?Warnings: 0
mysql> insert into t ?select * ?from t;
Query OK, 3392 rows affected (0.11 sec)
Records: 3392 ?Duplicates: 0 ?Warnings: 0


這個時候達(dá)到了1秒鐘了所以就要記錄sql語句
mysql> insert into t ?select * ?from t;
^[[AQuery OK, 6784 rows affected?
(1.15 sec)
Records: 6784 ?Duplicates: 0 ?Warnings: 0

mysql> system more /tmp/mysqlslow.log
/usr/local/mysql/libexec/mysqld, Version: 5.1.70-log (Source distribution). star
ted with:
Tcp port: 3306 ?Unix socket: /tmp/mysql.sock
Time ? ? ? ? ? ? ? ? Id Command ? ?Argument
# Time: 130903 18:46:28
# User@Host: root[root] @ localhost []
# Query_time: 1.150157 ?Lock_time: 0.000205 Rows_sent: 0 ?Rows_examined: 13568
use test;
SET timestamp=1378205188;
insert into t ?select * ?from t;

3,慢查詢相關(guān)的 參數(shù)log_queries_not_using_indexes

如果log_queries_not_using_indexes為ON的話,當(dāng)執(zhí)行一個sql語句的時候,如果一個表沒有索引就會把這個信息記錄在慢查詢文件中

mysql> show variables like "%log_queries_not%"
? ?-> ;
+-------------------------------+-------+
| Variable_name ? ? ? ? ? ? ? ? | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF ? |
+-------------------------------+-------+
1 row in set (0.00 sec)
我們來吧log_queries_not_using_indexes設(shè)置為ON的時候來試試吧

mysql> set global log_queries_not_using_indexes=on;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "%log_queries_not%";
+-------------------------------+-------+
| Variable_name ? ? ? ? ? ? ? ? | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | ON ? ?|
+-------------------------------+-------+
1 row in set (0.01 sec)


mysql> show index from t; ??表t沒有索引
Empty set (0.00 sec)

mysql> select * from t where TABLE_NAME="xxxxxxxxxxx";
Empty set (0.11 sec)

這個時候慢日志文件記錄下來了這個sql語句

mysql> system ?tail /tmp/mysqlslow.log;
# User@Host: root[root] @ localhost []
# Query_time: 1.150157 ?Lock_time: 0.000205 Rows_sent: 0 ?Rows_examined: 13568
use test;
SET timestamp=1378205188;
insert into t ?select * ?from t;
# Time: 130903 18:58:17
# User@Host: root[root] @ localhost []
# Query_time: 0.100749 ?Lock_time: 0.057377 Rows_sent: 0 ?Rows_examined: 27136
SET timestamp=1378205897;
select * from t where TABLE_NAME="xxxxxxxxxxx";
mysql>?


4,工具mysqldumpslow用來分析sql語句慢查詢


[root@test4 Desktop]# mysqldumpslow ?-s t -t 2 ?/tmp/mysqlslow.log?

Reading mysql slow query log from /tmp/mysqlslow.log
Count: 1 ?Time=1.15s (1s) ?Lock=0.00s (0s) ?Rows=0.0 (0), root[root]@localhost
?insert into t ?select * ?from t

Count: 1 ?Time=0.04s (0s) ?Lock=0.06s (0s) ?Rows=0.0 (0), root[root]@localhost
?select * from t where TABLE_NAME="S"


from:?http://wolfword.blog.51cto.com/4892126/1287992

總結(jié)

以上是生活随笔為你收集整理的mysql dba系统学习(8)查询日志文件功能 mysql dba系统学习(9)slow query log慢查询日志功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。