Mysql

有關執行了哪些查詢以及執行次數的統計資訊

  • March 31, 2022

我想監控某些查詢執行了多少次。看看下面的 3 個查詢,第二個和第三個是寫成prepared statement。

SELECT COUNT(*) FROM TABLE1

UPDATE TABLE2 SET `last_parsed` = NOW() WHERE `id` = ?

SELECT 1 FROM TABLE2 WHERE (`last_parsed` IS NULL OR `last_parsed` < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 7 DAY)) AND `id` = ?

mariadb/mysql dbms 是否跟踪每個查詢的執行次數?它是否將準備好的語句分組到一個列表中,以便如果id是 10 或 20,它們都顯示在同一類別下?

MySQL 和 MariaDB…

計劃 A:開啟慢日誌。有long_query_time = 0。用於pt-query-digest匯總日誌。(這還將提供有關性能不佳的查詢的資訊。)

B計劃:開啟通用日誌。用於pt-query-digest匯總日誌。

注意:這兩種技術都使用大量磁碟空間,並且不會自行清理。也就是說,您將需要處理使用的磁碟空間。如果你執行了很長時間。

“摘要”刪除了實際的數字和字元串值。即“… WHERE x=2”和“… WHERE x=987”被認為是“相同的”。如果您需要“相同”來包含相同的值,那麼您應該計劃使用通用日誌並進行自己的後處理。

引用自:https://dba.stackexchange.com/questions/310381