中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中general_log日志知識點有哪些

發布時間:2021-07-30 11:25:31 來源:億速云 閱讀:194 作者:小新 欄目:MySQL數據庫

這篇文章主要為大家展示了“mysql中general_log日志知識點有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“mysql中general_log日志知識點有哪些”這篇文章吧。

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

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

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

開啟general log有很多的方式。

下面簡單介紹和演示下:

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

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

重新啟動mysql,這個操作相當于是永久生效。當然這種方式是不允許在生產上采用的。因為要重啟mysql,會中斷mysql的業務。同時general.log會記錄所有的關于mysql的DDL和DML語句,非常消耗資源,一般都是在協助排除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數據庫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查詢/更新/刪除/插入比較頻繁了。比如有些表不是經常變化的,查詢量又很大,就完全可以cache;對主備延遲要求不高的表,讀可以放到備庫;等等

以上是“mysql中general_log日志知識點有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平乐县| 呼图壁县| 连南| 丹阳市| 仪征市| 利辛县| 苍南县| 宁阳县| 平山县| 通海县| 宝兴县| 铜陵市| 汉阴县| 闽侯县| 华阴市| 长泰县| 五指山市| 平果县| 高邮市| 盐边县| 明星| 二连浩特市| 志丹县| 夏河县| 通城县| 类乌齐县| 柯坪县| 沁水县| 河西区| 隆化县| 偏关县| 卓尼县| 达孜县| 城口县| 中方县| 泰兴市| 察哈| 仙桃市| 高碑店市| 富源县| 海淀区|