日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

MySQL查询日志总结

發(fā)布時(shí)間:2025/4/9 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL查询日志总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

MySQL查詢?nèi)罩窘榻B

?

?

MySQL的查詢?nèi)罩居涗浟怂蠱ySQL數(shù)據(jù)庫(kù)請(qǐng)求的信息。無(wú)論這些請(qǐng)求是否得到了正確的執(zhí)行。默認(rèn)文件名為hostname.log。默認(rèn)情況下MySQL查詢?nèi)罩臼顷P(guān)閉的。生產(chǎn)環(huán)境,如果開(kāi)啟MySQL查詢?nèi)罩?#xff0c;對(duì)性能還是有蠻大的影響的。另外很多時(shí)候,MySQL慢查詢?nèi)罩净究梢远ㄎ荒切┏霈F(xiàn)性能問(wèn)題的SQL,所以MySQL查詢?nèi)罩緫?yīng)用的場(chǎng)景其實(shí)不多,有點(diǎn)雞肋的感覺(jué),它跟SQL Server中的profiler有點(diǎn)類似,但是這個(gè)不能跟蹤某個(gè)會(huì)話、用戶、客戶端。它只能對(duì)整個(gè)數(shù)據(jù)庫(kù)進(jìn)行跟蹤。MySQL查詢?nèi)罩颈旧肀容^簡(jiǎn)單,網(wǎng)上介紹的不多,官方資料也就那么短短一篇。

?

?

?

MySQL查詢?nèi)罩九渲?/font>

?

?

MySQL中的參數(shù)general_log用來(lái)控制開(kāi)啟、關(guān)閉MySQL查詢?nèi)罩?參數(shù)general_log_file用來(lái)控制查詢?nèi)罩镜奈恢谩K匀绻阋袛郙ySQL數(shù)據(jù)庫(kù)是否開(kāi)啟了查詢?nèi)罩?#xff0c;可以使用下面命令。general_log為ON表示開(kāi)啟查詢?nèi)罩?#xff0c;OFF表示關(guān)閉查詢?nèi)罩尽?/font>

?

mysql> show variables like?'%general_log%';+------------------+------------------------------+| Variable_name??? | Value??????????????????????? |+------------------+------------------------------+| general_log????? | OFF????????????????????????? || general_log_file | /var/lib/mysql/DB-Server.log |+------------------+------------------------------+2 rows?in?set (0.00 sec)?mysql>

?

?

另外,MySQL的查詢?nèi)罩局С謱懭胛募驅(qū)懭霐?shù)據(jù)表兩種形式,這個(gè)由參數(shù)log_output控制,如下所示:

?

?

mysql> show variables like?'log_output';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output??? | FILE? |+---------------+-------+1 row?in?set (0.00 sec)?mysql>

?

這三個(gè)參數(shù)general_log、 general_log_file、 log_output都是動(dòng)態(tài)參數(shù),可以隨時(shí)動(dòng)態(tài)修改。

?

?

1、開(kāi)啟MySQL查詢?nèi)罩?/font>

?

?

mysql> set?global general_log = on;Query OK, 0 rows affected (0.11 sec)?mysql> show variables like?'general_log';+---------------+-------+| Variable_name | Value |+---------------+-------+| general_log?? | ON??? |+---------------+-------+1 row?in?set (0.02 sec)?mysql>

?

?

2:關(guān)閉MySQL查詢?nèi)罩?/font>

?

mysql> show variables like?'general_log';+---------------+-------+| Variable_name | Value |+---------------+-------+| general_log?? | ON??? |+---------------+-------+1 row?in?set (0.01 sec)?mysql> set?global general_log=off;Query OK, 0 rows affected (0.01 sec)?mysql> show variables like?'general_log';+---------------+-------+| Variable_name | Value |+---------------+-------+| general_log?? | OFF?? |+---------------+-------+1 row?in?set (0.00 sec)?mysql>

?

?

?

3:設(shè)置日志輸出方式為表(如果設(shè)置log_output=table的話,則日志結(jié)果會(huì)記錄到名為gengera_log的表中,這表的默認(rèn)引擎是CSV):

?

mysql> show variables like?'log_output';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output??? | FILE? |+---------------+-------+1 row?in?set (0.00 sec)?mysql> set?global log_output='table';Query OK, 0 rows affected (0.00 sec)?mysql> show variables like?'log_output';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output??? | TABLE |+---------------+-------+1 row?in?set (0.01 sec)?mysql>

?

查看查詢?nèi)罩拘畔ⅰ?/font>

?

mysql> select * from mysql.general_log;+---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+| event_time????????? | user_host???????????????? | thread_id | server_id | command_type | argument???????????????????????? |+---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+| 2017-07-06 12:32:05 | root[root] @ localhost [] |???????? 1 |???????? 1 | Query??????? | show variables like?'general%'?? || 2017-07-06 12:32:28 | root[root] @ localhost [] |???????? 1 |???????? 1 | Query??????? | show variables like?'log_output' || 2017-07-06 12:32:41 | root[root] @ localhost [] |???????? 1 |???????? 1 | Query??????? | select * from MyDB.test????????? || 2017-07-06 12:34:36 | [root] @ localhost []???? |???????? 3 |???????? 1 | Connect????? | root@localhost on??????????????? || 2017-07-06 12:34:36 | root[root] @ localhost [] |???????? 3 |???????? 1 | Query??????? | KILL QUERY 1???????????????????? || 2017-07-06 12:34:36 | root[root] @ localhost [] |???????? 3 |???????? 1 | Quit???????? |????????????????????????????????? || 2017-07-06 12:34:51 | root[root] @ localhost [] |???????? 1 |???????? 1 | Query??????? | select * from mysql.general_log? |+---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+7 rows?in?set (0.02 sec)?mysql>

?

?

4: 查詢?nèi)罩練w檔

?

?

mysql> system mv /var/lib/mysql/DB-Server.log? /var/lib/mysql/DB-Server.log.20170706

mysql> system mysqladmin flush-logs -p

Enter password:

?

或者你在shell中執(zhí)行下面命令

?

[root@DB-Server mysql]# mv /var/lib/mysql/DB-Server.log? /var/lib/mysql/DB-Server.log.20170706

[root@DB-Server mysql]# mysqladmin flush-logs -p

Enter password:

?

?

?

5: 修改查詢?nèi)罩久Q或位置

?

?

mysql> show variables like?'general_log%';+------------------+------------------------------+| Variable_name??? | Value??????????????????????? |+------------------+------------------------------+| general_log????? | ON?????????????????????????? || general_log_file | /var/lib/mysql/DB-Server.log |+------------------+------------------------------+2 rows?in?set (0.00 sec)?mysql> set?global general_log='OFF';Query OK, 0 rows affected (0.00 sec)?mysql> set?global general_log_file='/u02/mysql_log.log';Query OK, 0 rows affected (0.00 sec)mysql> set?global general_log='ON';Query OK, 0 rows affected (0.02 sec)

?

?

如果你遇到下面類似問(wèn)題,這個(gè)是因?yàn)闄?quán)限問(wèn)題導(dǎo)致。

?

mysql> set global general_log_file='/u02/mysql_log.log';

ERROR 1231 (42000): Variable 'general_log_file' can't be set to the value of '/u02/mysql_log.log'

?

將對(duì)應(yīng)目錄的owner修改為mysql即可解決問(wèn)題。如下所示:

?

[root@DB-Server u02]# chown -R mysql:mysql? /u02

?

?

另外,MySQL的查詢?nèi)罩居涗浟怂蠱ySQL數(shù)據(jù)庫(kù)請(qǐng)求的信息。無(wú)論這些請(qǐng)求是否得到了正確的執(zhí)行。這個(gè)就是即使我查詢一個(gè)不存在的表的SQL,查詢?nèi)罩疽廊粫?huì)記錄。如下測(cè)試所示:

?

mysql> select * from MyDB.test1;ERROR 1146 (42S02): Table?'MyDB.test1' doesn't existmysql> select * from MyDB.test2;+-------+------+| id??? | sex? |+-------+------+| 10001 |????? || 10002 |????? || 10003 |???? |+-------+------+3 rows in set (0.07 sec)?mysql> select * from MyDB.kkk;ERROR 1146 (42S02): Table 'MyDB.kkk' doesn't existmysql>

?

?

?

?

MySQL查詢?nèi)罩镜膽?yīng)用場(chǎng)景

?

?

??? 存在即是合理,既然MySQL提供了查詢?nèi)罩?#xff0c;那么肯定有其應(yīng)用的地方。比如,我就遇到這樣一個(gè)例子,前陣子碰到別人問(wèn)mysqlslap壓力測(cè)試工具中參數(shù)的問(wèn)題,問(wèn)題如下:?

?

??? ?-c, --concurrency=name???? Number of clients to simulate for query to run.

?

???? --number-of-queries=#????? Limit?each?client?to?this?number?of?queries?(this?is?not?exact).

?

?? 比如我指定:--concurrency=50? --number-of-queries=100, 那么這次測(cè)試總的sql執(zhí)行次數(shù)是=100?還是?50*100=5000 ?

?

我們不知道--number-of-queries這個(gè)參數(shù)代表所有客戶端的執(zhí)行次數(shù)還是每一個(gè)客戶端的執(zhí)行次數(shù),這些英文如果看得不是太明白,那么我們就動(dòng)手測(cè)試一下,這個(gè)時(shí)候MySQL查詢?nèi)罩揪湍馨l(fā)揮其用武之地了。

?

?

[root@DB-Server u02]# mysqlslap -u root -p --concurrency=50 --create-schema='MyDB'? --query='select * from MyDB.test2'? --number-of-queries=100;?Enter password: ?Benchmark???????? Average number of seconds to run all queries: 0.023 seconds???????? Minimum number of seconds to run all queries: 0.023 seconds???????? Maximum number of seconds to run all queries: 0.023 seconds???????? Number of clients running queries: 50???????? Average number of queries per client: 2

?

?

如下所示,我們可以查到這個(gè)SQL總共執(zhí)行了100次,也就是說(shuō)number-of-queries代表總共要運(yùn)行多少次查詢。每個(gè)客戶運(yùn)行的查詢數(shù)量可以用查詢總數(shù)/并發(fā)數(shù)來(lái)計(jì)算。--concurrency? 表示并發(fā)量,也就是模擬多少個(gè)客戶端同時(shí)執(zhí)行select。? 如果你指定?--number-of-queries=100,?--concurrency=50? 測(cè)試總的SQL執(zhí)行應(yīng)該是100

?

?

???

?

?

?

參考資料:

?

https://dev.mysql.com/doc/refman/5.6/en/query-log.html

轉(zhuǎn)載于:https://www.cnblogs.com/kerrycode/p/7130403.html

總結(jié)

以上是生活随笔為你收集整理的MySQL查询日志总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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