搜尋
首頁資料庫mysql教程MySQL中普通、慢查詢日誌的差別

MySQL中普通、慢查詢日誌的差別

Sep 08, 2017 am 10:12 AM
mysql差別紀錄


Intro

<br/>


#之前的一篇分享提到,MySQL的日誌類型可以分為三種,錯誤日誌(error_log),查詢日誌(query_log),和二進位日誌(binary_log),error_log的介紹與用法詳見MySQL日誌之error_log,本文主要介紹general_log和slow_query_log的原理和用法。

通用查詢日誌

通用查詢日誌(general_log)主要用於查詢各client連接資料庫時的相關資訊與在資料庫上執行的SQL語句,設定方法為:

1、查詢通用查詢日誌是否開啟與其存放路徑:

mysql> show variables like "general_log%";
+------------------+------------------------------+| Variable_name    | Value                        |
+------------------+------------------------------+| general_log      | OFF                           |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.00 sec)

螢幕輸出中general_loggeneral_log_file記錄了目前通用查詢日誌的開關狀態與路徑。

2、開啟通用查詢日誌

    set global general_log = ON

查詢是否成功:

mysql> show variables like "general_log%";
+------------------+------------------------------+| Variable_name    | Value                        |
+------------------+------------------------------+| general_log      | ON                           |
| general_log_file | /var/lib/mysql/localhost.log |
+------------------+------------------------------+
2 rows in set (0.00 sec)

成功。

退出一下看有沒有生成並且正確記錄:

[root@localhost ~]# cat /var/lib/mysql/localhost.log
/usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
2017-08-14T09:33:11.364650Z     5 Quit  
2017-08-14T09:33:20.671113Z     6 Connect   root@localhost on  using Socket
2017-08-14T09:33:20.671323Z     6 Query select @@version_comment limit 1
2017-08-14T09:33:22.964610Z     6 Query show variables like &#39;%log%&#39;
2017-08-14T09:33:24.574224Z     6 Quit

成功,並且我們可以看到,log不僅記錄了SQL命令,同時還包括了執行時間、Id、命令類型等相關資料

慢查詢日誌

慢查詢日誌記錄了SQL語句時間超過了預設的long_query_time的語句,在資料量較大的情況下,可以看看慢查詢日誌中有哪些語句需要進行最佳化。

1、慢查詢日誌的設定

慢查詢日誌的設定可以在資料庫設定檔my.cnf中查到:

[root@localhost ~]# cat /etc/my.cnf | grep -E &#39;long|slow|not_using_indexes&#39;long_query_time = 1#log-slow-queries = /var/log/mysql/slow.loglog_queries_not_using_indexes

可以看到:

long_query_time = 1的意思是SQL語句執行時間超過1s的,對其進行記錄;
log-slow- queries = /var/log/mysql/slow.log是對慢查詢日誌路徑的設定;
log_queries_not_using_indexes意思是不使用索引的語句,可以縮小記錄的目標

實際設定與通用查詢日誌相同,在mysql互動介面中輸入指令開啟慢查詢日誌:

    set slow_query_log = ON

2、查詢是否成功

[root@localhost ~]# cat /var/lib/mysql/localhost-slow.log
/usr/sbin/mysqld, Version: 5.7.19 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument

成功。

但注意,slow_query_log可能會記錄到與使用者權限和密碼相關的語句,因此在使用慢查詢日誌檔案時請注意日誌的安全保存。

以上是MySQL中普通、慢查詢日誌的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
MySQL與Sqlite有何不同?MySQL與Sqlite有何不同?Apr 24, 2025 am 12:12 AM

MySQL和SQLite的主要區別在於設計理念和使用場景:1.MySQL適用於大型應用和企業級解決方案,支持高性能和高並發;2.SQLite適合移動應用和桌面軟件,輕量級且易於嵌入。

MySQL中的索引是什麼?它們如何提高性能?MySQL中的索引是什麼?它們如何提高性能?Apr 24, 2025 am 12:09 AM

MySQL中的索引是數據庫表中一列或多列的有序結構,用於加速數據檢索。 1)索引通過減少掃描數據量提升查詢速度。 2)B-Tree索引利用平衡樹結構,適合範圍查詢和排序。 3)創建索引使用CREATEINDEX語句,如CREATEINDEXidx_customer_idONorders(customer_id)。 4)複合索引可優化多列查詢,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。 5)使用EXPLAIN分析查詢計劃,避

說明如何使用MySQL中的交易來確保數據一致性。說明如何使用MySQL中的交易來確保數據一致性。Apr 24, 2025 am 12:09 AM

在MySQL中使用事務可以確保數據一致性。 1)通過STARTTRANSACTION開始事務,執行SQL操作後用COMMIT提交或ROLLBACK回滾。 2)使用SAVEPOINT可以設置保存點,允許部分回滾。 3)性能優化建議包括縮短事務時間、避免大規模查詢和合理使用隔離級別。

在哪些情況下,您可以選擇PostgreSQL而不是MySQL?在哪些情況下,您可以選擇PostgreSQL而不是MySQL?Apr 24, 2025 am 12:07 AM

選擇PostgreSQL而非MySQL的場景包括:1)需要復雜查詢和高級SQL功能,2)要求嚴格的數據完整性和ACID遵從性,3)需要高級空間功能,4)處理大數據集時需要高性能。 PostgreSQL在這些方面表現出色,適合需要復雜數據處理和高數據完整性的項目。

如何保護MySQL數據庫?如何保護MySQL數據庫?Apr 24, 2025 am 12:04 AM

MySQL數據庫的安全可以通過以下措施實現:1.用戶權限管理:通過CREATEUSER和GRANT命令嚴格控制訪問權限。 2.加密傳輸:配置SSL/TLS確保數據傳輸安全。 3.數據庫備份和恢復:使用mysqldump或mysqlpump定期備份數據。 4.高級安全策略:使用防火牆限制訪問,並啟用審計日誌記錄操作。 5.性能優化與最佳實踐:通過索引和查詢優化以及定期維護兼顧安全和性能。

您可以使用哪些工具來監視MySQL性能?您可以使用哪些工具來監視MySQL性能?Apr 23, 2025 am 12:21 AM

如何有效監控MySQL性能?使用mysqladmin、SHOWGLOBALSTATUS、PerconaMonitoringandManagement(PMM)和MySQLEnterpriseMonitor等工具。 1.使用mysqladmin查看連接數。 2.用SHOWGLOBALSTATUS查看查詢數。 3.PMM提供詳細性能數據和圖形化界面。 4.MySQLEnterpriseMonitor提供豐富的監控功能和報警機制。

MySQL與SQL Server有何不同?MySQL與SQL Server有何不同?Apr 23, 2025 am 12:20 AM

MySQL和SQLServer的区别在于:1)MySQL是开源的,适用于Web和嵌入式系统,2)SQLServer是微软的商业产品,适用于企业级应用。两者在存储引擎、性能优化和应用场景上有显著差异,选择时需考虑项目规模和未来扩展性。

在哪些情況下,您可以選擇SQL Server而不是MySQL?在哪些情況下,您可以選擇SQL Server而不是MySQL?Apr 23, 2025 am 12:20 AM

在需要高可用性、高級安全性和良好集成性的企業級應用場景下,應選擇SQLServer而不是MySQL。 1)SQLServer提供企業級功能,如高可用性和高級安全性。 2)它與微軟生態系統如VisualStudio和PowerBI緊密集成。 3)SQLServer在性能優化方面表現出色,支持內存優化表和列存儲索引。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器