欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL慢查詢日志(Slow Query Log)的實現(xiàn)

 更新時間:2024年08月22日 11:39:53   作者:C語言中文網  
慢查詢日志用來記錄在 MySQL 中執(zhí)行時間超過指定時間的查詢語句,本文就來介紹一下MySQL慢查詢日志 的使用,感興趣的可以了解一下

慢查詢日志用來記錄在 MySQL 中執(zhí)行時間超過指定時間的查詢語句。通過慢查詢日志,可以查找出哪些查詢語句的執(zhí)行效率低,以便進行優(yōu)化。

通俗的說,MySQL 慢查詢日志是排查問題的 SQL 語句,以及檢查當前 MySQL 性能的一個重要功能。如果不是調優(yōu)需要,一般不建議啟動該參數,因為開啟慢查詢日志會或多或少帶來一定的性能影響。

默認情況下,慢查詢日志功能是關閉的。可以通過以下命令查看是否開啟慢查詢日志功能。命令和執(zhí)行過程如下:

mysql> SHOW VARIABLES LIKE 'slow_query%';
+---------------------+---------------------------------------------------------------------+
| Variable_name       | Value                                                               |
+---------------------+---------------------------------------------------------------------+
| slow_query_log      | OFF                                                                 |
| slow_query_log_file | C:\ProgramData\MySQL\MySQL Server 5.7\Data\LAPTOP-UHQ6V8KP-slow.log |
+---------------------+---------------------------------------------------------------------+
2 rows in set, 1 warning (0.02 sec)

mysql> SHOW VARIABLES LIKE 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set, 1 warning (0.01 sec)

參數說明如下:

  • slow_query_log:慢查詢開啟狀態(tài)
  • slow_query_log_file:慢查詢日志存放的位置(一般設置為 MySQL 的數據存放目錄)
  • long_query_time:查詢超過多少秒才記錄

啟動和設置慢查詢日志

可以通過 log-slow-queries 選項開啟慢查詢日志。通過 long_query_time 選項來設置時間值,時間以秒為單位。如果查詢時間超過了這個時間值,這個查詢語句將被記錄到慢查詢日志。

將 log_slow_queries 選項和 long_query_time 選項加入到配置文件的 [mysqld] 組中。格式如下:

[mysqld]
log-slow-queries=dir\filename
long_query_time=n

其中:

  • dir 參數指定慢查詢日志的存儲路徑,如果不指定存儲路徑,慢查詢日志將默認存儲到 MySQL 數據庫的數據文件夾下。
  • filename 參數指定日志的文件名,生成日志文件的完整名稱為 filename-slow.log。 如果不指定文件名,默認文件名為 hostname-slow.log,hostname 是 MySQL 服務器的主機名。
  • “n”參數是設定的時間值,該值的單位是秒。如果不設置 long_query_time 選項,默認時間為 10 秒。

還可以通過以下命令啟動慢查詢日志、設置指定時間:

SET GLOBAL slow_query_log=ON/OFF;
SET GLOBAL long_query_time=n;

查看慢查詢日志

如果你想查看哪些查詢語句的執(zhí)行效率低,可以從慢查詢日志中獲得信息。和錯誤日志、查詢日志一樣,慢查詢日志也是以文本文件的形式存儲的,可以使用普通的文本文件查看工具來查看。

例 1

開啟 MySQL 慢查詢日志功能,并設置時間,命令和執(zhí)行過程如下:

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 秒,執(zhí)行時間超過 0.001 秒的 SQL 語句將被記錄到日志中。

查詢 tb_student 表中的數據,SQL 語句和執(zhí)行過程如下:

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%';

刪除慢查詢日志

慢查詢日志的刪除方法與通用日志的刪除方法是一樣的??梢允褂?mysqladmin 命令來刪除。也可以使用手工方式來刪除。mysqladmin 命令的語法如下:

mysqladmin -uroot -p flush-logs

執(zhí)行該命令后,命令行會提示輸入密碼。輸入正確密碼后,將執(zhí)行刪除操作。新的慢查詢日志會直接覆蓋舊的查詢日志,不需要再手動刪除。

數據庫管理員也可以手工刪除慢查詢日志,刪除之后需要重新啟動 MySQL 服務。

注意:通用查詢日志和慢查詢日志都是使用這個命令,使用時一定要注意,一旦執(zhí)行這個命令,通用查詢日志和慢查詢日志都只存在新的日志文件中。如果需要備份舊的慢查詢日志文件,必須先將舊的日志改名,然后重啟 MySQL 服務或執(zhí)行 mysqladmin 命令。

到此這篇關于MySQL慢查詢日志(Slow Query Log)的實現(xiàn)的文章就介紹到這了,更多相關MySQL慢查詢日志 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • mysql主鍵id的生成方式(自增、唯一不規(guī)則)

    mysql主鍵id的生成方式(自增、唯一不規(guī)則)

    本文主要介紹了mysql主鍵id的生成方式,主要包括兩種生成方式,文中通過代碼示例介紹的非常詳細,感興趣的可以了解一下
    2021-09-09
  • MySQL 聲明變量及存儲過程分析

    MySQL 聲明變量及存儲過程分析

    這篇文章主要介紹了MySQL 聲明變量及存儲過程的相關內容,小編覺得挺不錯的,這里分享給大家,需要的朋友可以參考下。
    2017-10-10
  • 安裝MySQL后,需要調整的10個性能配置項

    安裝MySQL后,需要調整的10個性能配置項

    這篇文章主要介紹了安裝MySQL后,需要調整的10個性能配置項,幫助大家更好的理解和使用MySQL數據庫,感興趣的朋友可以了解下
    2020-12-12
  • mysql存儲過程 游標 循環(huán)使用介紹

    mysql存儲過程 游標 循環(huán)使用介紹

    今天分享下自己對于Mysql存儲過程的認識與了解,這里主要說說大家常用的游標加循環(huán)的嵌套使用
    2012-11-11
  • mysql如何開啟各種日志

    mysql如何開啟各種日志

    這篇文章主要介紹了mysql如何開啟各種日志,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • mysql中union和union?all的使用及注意事項

    mysql中union和union?all的使用及注意事項

    這篇文章主要給大家介紹了關于mysql中union和union?all的使用及注意事項的相關資料,需要的朋友可以參考下
    2022-08-08
  • MySQL隱式類型轉換導致索引失效的解決

    MySQL隱式類型轉換導致索引失效的解決

    本文主要介紹了MySQL隱式類型轉換導致索引失效的解決,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • MySQL DNS的使用過程詳細分析

    MySQL DNS的使用過程詳細分析

    當 mysql 客戶端連接 mysql 服務器 (進程為:mysqld),mysqld 會創(chuàng)建一個新的線程來處理該請求。該線程先檢查是否主機名在主機名緩存中
    2012-11-11
  • MySQL insert into select 主鍵沖突解決方案

    MySQL insert into select 主鍵沖突解決方案

    本文主要介紹了MySQL insert into select主鍵沖突解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • SQL查詢語句執(zhí)行的過程

    SQL查詢語句執(zhí)行的過程

    這篇文章主要介紹了SQL查詢語句執(zhí)行的過程,文章圍繞主題展開SQL查詢語句的相關資料,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05

最新評論