Mysql

RDS MySQL 最高 CPU 查詢

  • August 31, 2020

我想知道是否有任何方法可以在每個 CPU 的實例中獲取最高查詢。我會根據 CPU 使用情況查看哪個查詢對我的實例的影響更大。

任何人都知道在 SQL Server 之類的 MySQL 中是否可行?

如何在 MySQL 上實時獲取讀取數百萬行的事件,出現在性能洞察(AWS 工具)上的資訊顯示了一個非常快的查詢,最多返回 573 行。

像這樣有用的東西: https ://blog.sqlauthority.com/2014/07/29/sql-server-ssms-top-queries-by-cpu-and-io/

使用Idera Real-Time解決了該問題:

Real-Time 在伺服器上連續執行一堆查詢,並獲取有關排名靠前的查詢、表、數據庫、使用者、主機、已鎖定的查詢、已鎖定的查詢等的資訊。由於這些資訊是實時檢索的,因此您隨時查看您的伺服器在做什麼。

實時監控有兩種模式:Processlist 和 Performance Schema。

  • Processlist 模式,SQL DM for MySQL 每秒執行一次查詢 SHOW FULL PROCESSLIST 以獲取查詢。基於性能模式的實時利用 MySQL 伺服器的 performance_schema 數據庫。性能模式數據庫在其表中記錄每個查詢。MySQL 的 SQL DM 查詢 performance_schema 並檢索查詢,包括短期查詢。
  • 基於性能模式的實時,您可以獲得額外的資訊,例如查詢完成的全表掃描次數、每個查詢的成功、錯誤和警告計數。

慢日誌是擷取“慢”查詢的最佳工具。

“每個 CPU”沒有意義。查詢可能會在​​ CPU-0 中執行一段時間,然後轉移到 CPU-4 等。

使用pt-query-digest是總結資訊的好工具。更多:http://localhost/rjweb/mysql/doc.php/mysql_analysis#slow_queries_and_slowlog

SHOW PROCESSLIST可能會錯過快速但頻繁的查詢。同樣使用long_query_time設置太高的慢日誌。(建議以 . 開頭1。)

諸如“全表掃描”之類的東西只是部分有用。例如,如果一個表只有 10 行,則該標誌是偽造的。

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