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

首頁 > 數據庫 > MySQL > 正文

mysql慢查詢日記怎么配備

2024-07-24 12:33:26
字體:
來源:轉載
供稿:網友
  什么是慢查詢
  慢查詢,顧名思義,就是在日志中記錄運行比較慢的SQL語句,是指mysql記錄所有執行超過long_query_time參數設定的時間閾值的SQL語句查詢。
 
  慢查詢記錄在慢查詢日志中,通過慢查詢日志,可以查找出哪些查詢語句的執行效率低,以便進行優化。該日志能為SQL語句的優化帶來很好的幫助。
 
  默認情況下,慢查詢日志是關閉的,要使用慢查詢日志功能,首先要開啟慢查詢日志功能。
 
  慢查詢日志配置
  1. 慢查詢基本配置
  slow_query_log 啟動停止技術慢查詢日志
  slow_query_log_file 指定慢查詢日志得存儲路徑及文件(默認和數據文件放一起)
  long_query_time 指定記錄慢查詢日志SQL執行時間得伐值(單位:秒,默認10秒)
  log_queries_not_using_indexes  是否記錄未使用索引的SQL
  log_output 日志存放的地方【TABLE】【FILE】【FILE,TABLE】
  配置了慢查詢后,它會記錄符合條件的SQL
 
  包括:
 
  查詢語句
  數據修改語句
  已經回滾得SQL
  2. 實操:
  通過下面命令查看下上面的配置:
 
  show VARIABLES like '%slow_query_log%'
  show VARIABLES like '%slow_query_log_file%'
  show VARIABLES like '%long_query_time%'
  show VARIABLES like '%log_queries_not_using_indexes%'
  show VARIABLES like 'log_output'
  設置慢查詢的參數:
 
  set global long_query_time=0;   ---默認10秒,這里為了演示方便設置為0
  set GLOBAL  slow_query_log = 1; --開啟慢查詢日志
  set global log_output='FILE,TABLE'  --項目開發中日志只能記錄在日志文件中,不能記表中
  設置完成后,查詢一些列表可以發現慢查詢的日志文件里面有數據了。
 
  但是在我的電腦上,不知道為啥,這個時間總是不能正常的執行sql結果。更新不了;
 
  所以我們用這樣的方法就可以了:
 
  找到my.cnf,添加如下內容
 
  # 添加慢查詢日志
  log_output=file
  slow_query_log=on
  slow_query_log_file = /tmp/mysql-slow.log
  log_queries_not_using_indexes=on
  long_query_time = 1
  3. 查看慢查詢日志
  如果你想查看哪些查詢語句的執行效率低,可以從慢查詢日志中獲得信息。和錯誤日志、查詢日志一樣,慢查詢日志也是以文本文件的形式存儲的,可以使用普通的文本文件查看工具來查看。
 
  例 1
 
  開啟 MySQL 慢查詢日志功能,并設置時間,命令和執行過程如下:
 
  mysql> SET GLOBAL slow_query_log=ON;
  Query OK, 0 rows affected (0.05 sec)
 
  mysql> SET GLOBAL long_query_time=0.001;
  Query OK, 0 rows affected (0.00 sec)
  由于需要演示這里我們將時間設置為了 0.001 秒,執行時間超過 0.001 秒的 SQL 語句將被記錄到日志中。
 
  查詢 tb_student 表中的數據,SQL 語句和執行過程如下:
 
  mysql> USE test;
  Database changed
  mysql> SELECT * FROM tb_student;
  +----+--------+
  | id | name   |
  +----+--------+
  |  1 | Java   |
  |  2 | MySQL  |
  |  3 | Python |
  +----+--------+
  3 rows in set (0.08 sec)
  相應的,慢查詢日志的部分內容如下:
 
  # Time: 2020-06-01T01:59:18.368780Z
  # User@Host: root[root] @ localhost [::1]  Id:     3
  # Query_time: 0.006281  Lock_time: 0.000755 Rows_sent: 2  Rows_examined: 1034
  use test;
  SET timestamp=1590976758;
  SHOW VARIABLES LIKE 'slow_query%';
  4、刪除慢查詢日志
  慢查詢日志的刪除方法與通用日志的刪除方法是一樣的。可以使用 mysqladmin 命令來刪除。也可以使用手工方式來刪除。mysqladmin 命令的語法如下:
 
  mysqladmin -uroot -p flush-logs
  執行該命令后,命令行會提示輸入密碼。輸入正確密碼后,將執行刪除操作。新的慢查詢日志會直接覆蓋舊的查詢日志,不需要再手動刪除。
 
  數據庫管理員也可以手工刪除慢查詢日志,刪除之后需要重新啟動 MySQL 服務。
 
  注意:通用查詢日志和慢查詢日志都是使用這個命令,使用時一定要注意,一旦執行這個命令,通用查詢日志和慢查詢日志都只存在新的日志文件中。如果需要備份舊的慢查詢日志文件,必須先將舊的日志改名,然后重啟 MySQL 服務或執行 mysqladmin 命令。
 
  “mysql慢查詢日記怎么配置”的內容就介紹到這里了,感謝大家的閱讀。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桐庐县| 子洲县| 巩留县| 个旧市| 江源县| 兴业县| 东乌珠穆沁旗| 阿巴嘎旗| 林口县| 建湖县| 岱山县| 泰来县| 哈巴河县| 新龙县| 岳西县| 米易县| 武川县| 成都市| 仁怀市| 岐山县| 神池县| 本溪市| 虹口区| 汝城县| 通渭县| 大宁县| 湄潭县| 宜昌市| 西昌市| 武鸣县| 同德县| 邮箱| 苏尼特左旗| 固安县| 林口县| 泸水县| 霸州市| 青冈县| 宁德市| 凤山县| 彩票|