国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql中g(shù)eneral_log日志知識點(diǎn)介紹

2020-01-18 20:43:53
字體:
供稿:網(wǎng)友

以下操作演示都是基于mysql5.6.36版本:

工作中經(jīng)常遇到這樣的問題:mysql數(shù)據(jù)訪問能量很大,想要從sql方面優(yōu)化。研發(fā)經(jīng)常會(huì)問到能看到哪些SQL執(zhí)行比較頻繁嗎?回道:不能哦,只能看到當(dāng)前正在運(yùn)行的SQL和慢日志里記錄的SQL。因?yàn)闉榱诵阅芸紤],一般general log不會(huì)開啟。slow log可以定位一些有性能問題的sql,而general log會(huì)記錄所有的SQL。然而有時(shí)候生產(chǎn)上的mysql出現(xiàn)性能問題,短時(shí)間開啟general log,來獲取sql執(zhí)行的情況,對排查和分析mysql的性能問題,還是有很大的幫助的?;蛘呤怯袝r(shí)候,不清楚程序執(zhí)行了什么sql語句,但是又要排除錯(cuò)誤,找不到原因的情況下,也是可以短暫的開啟這個(gè)general log日志的。

mysql5.0版本,如果要開啟slow log、general log,需要重啟,從MySQL5.1.6版開始,general query log和slow query log開始支持寫到文件或者數(shù)據(jù)庫表兩種方式,并且日志的開啟,輸出方式的修改,都可以在Global級別動(dòng)態(tài)修改。

開啟general log有很多的方式。

下面簡單介紹和演示下:

方法一:更改my.cnf配置文件

[root@git-server ~]# grep general_log /etc/my.cnfgeneral_log = 1general_log_file = /tmp/general.log

重新啟動(dòng)mysql,這個(gè)操作相當(dāng)于是永久生效。當(dāng)然這種方式是不允許在生產(chǎn)上采用的。因?yàn)橐貑ysql,會(huì)中斷mysql的業(yè)務(wù)。同時(shí)general.log會(huì)記錄所有的關(guān)于mysql的DDL和DML語句,非常消耗資源,一般都是在協(xié)助排除mysql故障時(shí),臨時(shí)短暫的開啟幾分鐘。事后都要關(guān)閉的。

方法二:在mysql命令控制臺(tái)操作

需要root用戶才有訪問此文件的權(quán)限

默認(rèn)這個(gè)日志是被關(guān)閉掉的。

mysql> show global variables like '%general%';+------------------+---------------------------------+| Variable_name  | Value              |+------------------+---------------------------------+| general_log   | OFF               || general_log_file | /data/mysql/data/git-server.log |+------------------+---------------------------------+2 rows in set (0.00 sec)mysql> 

有時(shí)需要臨時(shí)開啟MySQL的全局general_log,可以登錄mysql直接設(shè)置日志的路徑并開啟general_log

mysql> set global general_log_file='/tmp/general_log';Query OK, 0 rows affected (0.00 sec)mysql> set global general_log=on;Query OK, 0 rows affected (0.02 sec)mysql> show global variables like '%general%';+------------------+------------------+| Variable_name  | Value      |+------------------+------------------+| general_log   | ON        || general_log_file | /tmp/general_log |+------------------+------------------+2 rows in set (0.00 sec)mysql> [root@git-server ~]# tailf /tmp/general_log180717 22:55:51   2 Query show databases180717 22:56:04   2 Query SELECT DATABASE()      2 Init DB  test180717 22:56:14   2 Query select * from student3

在使用完后可以直接set global general_log=off;關(guān)閉這個(gè)日志

方法三:將日志保存在mysql數(shù)據(jù)庫general_log表中

mysql> set global log_output='table';mysql> set global general_log=on;mysql> use mysql;mysql> select * from test.student3;+----+--------------+------------+--------+------+| id | teacher_name | teacher_id | name  | sex |+----+--------------+------------+--------+------+| 1 | 花花     |     1 | 三安  | 女  || 4 | 散散     |     2 | 三安  | 女  || 6 | bibi     |     3 | 三安  | 女  |+----+--------------+------------+--------+------+3 rows in set (0.00 sec)mysql> select * from general_log;| 2018-07-17 23:00:12 | root[root] @ localhost [] |     2 | 1132333306 | Query    | select * from test.student3 

查看/tmp/general.log的信息,可以大致看到哪些sql查詢/更新/刪除/插入比較頻繁了。比如有些表不是經(jīng)常變化的,查詢量又很大,就完全可以cache;對主備延遲要求不高的表,讀可以放到備庫;等等

上面就是本次介紹的general_log日志的全部知識點(diǎn)內(nèi)容,感謝大家的閱讀和對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东山县| 宜良县| 页游| 夏津县| 宁远县| 新化县| 遂川县| 沂源县| 湖口县| 自治县| 湾仔区| 浑源县| 萝北县| 双城市| 临安市| 东乌珠穆沁旗| 富川| 双桥区| 日土县| 长海县| 稻城县| 庆安县| 望江县| 绍兴县| 周口市| 通道| 无极县| 都江堰市| 巩留县| 民和| 酒泉市| 綦江县| 九江县| 象山县| 边坝县| 武义县| 苍山县| 忻城县| 金川县| 应用必备| 平谷区|