濮阳杆衣贸易有限公司

主頁 > 知識庫 > mysql中general_log日志知識點介紹

mysql中general_log日志知識點介紹

熱門標簽:電銷卡外呼系統(tǒng)供應商 400電話可以免費申請嗎 騰訊地圖標注提升 福建外呼系統(tǒng)定制化 銅陵防封電銷卡 真人語音電話機器人 悟空科技電話機器人 美國反騷擾電話機器人 怎么在地圖標注位置生成圖片

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

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

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

開啟general log有很多的方式。

下面簡單介紹和演示下:

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

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

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

方法二:在mysql命令控制臺操作

需要root用戶才有訪問此文件的權限

默認這個日志是被關閉掉的。

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> 

有時需要臨時開啟MySQL的全局general_log,可以登錄mysql直接設置日志的路徑并開啟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_log
180717 22:55:51   2 Query show databases
180717 22:56:04   2 Query SELECT DATABASE()
      2 Init DB  test
180717 22:56:14   2 Query select * from student3

在使用完后可以直接set global general_log=off;關閉這個日志

方法三:將日志保存在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日志的全部知識點內容,感謝大家的閱讀和對腳本之家的支持。

您可能感興趣的文章:
  • Mysql在線回收undo表空間實戰(zhàn)記錄
  • MySQL redo死鎖問題排查及解決過程分析
  • MYSQL SERVER收縮日志文件實現(xiàn)方法
  • MySQL中常見的幾種日志匯總
  • mysql日志觸發(fā)器實現(xiàn)代碼
  • MySQL5.7慢查詢日志時間與系統(tǒng)時間差8小時原因詳解
  • mysql將bin-log日志文件轉為sql文件的方法
  • Mysql數(shù)據(jù)庫清理binlog日志命令詳解
  • 詳解MySQL 重做日志(redo log)與回滾日志(undo logo)

標簽:烏海 白銀 湖北 聊城 湖南 臨汾 武威 云浮

巨人網(wǎng)絡通訊聲明:本文標題《mysql中general_log日志知識點介紹》,本文關鍵詞  mysql,中,general,log,日志,知識點,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql中general_log日志知識點介紹》相關的同類信息!
  • 本頁收集關于mysql中general_log日志知識點介紹的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    乐山市| 南平市| 湘西| 普兰店市| 铅山县| 佛冈县| 监利县| 平阳县| 桂平市| 祥云县| 汉寿县| 赤城县| 曲靖市| 横峰县| 马公市| 滨海县| 德阳市| 南和县| 罗田县| 西畴县| 固安县| 绍兴县| 汉川市| 丹江口市| 桃江县| 新泰市| 金湖县| 绥芬河市| 涞源县| 库尔勒市| 玛多县| 长顺县| 乐清市| 延庆县| 开江县| 固镇县| 和田市| 闽清县| 湄潭县| 连平县| 基隆市|