查看mysql查詢慢,60天的數據語句怎么寫?
問題:
僅用慢日志文件,如何快速獲取分時報告?
如果有監控系統,獲取分時報告(每小時慢查詢的條數報告)不難,如果只有慢日志文件,就會有點費勁。
實驗:
通過 pt-query-digest --timeline 功能,可以輸出帶時間戳的慢查詢條目
用 sed 將 timeline 報告濾出
安裝 termsql
使用 termsql,將報告導入,并使用 SQL 查詢一條記錄,以展示 termsql 的效果
可以看到 termsql 將 timeline 報告的每一行,整理成了一條數據,放在 SQLite 中。
下面就可以盡情使用 SQL 獲取分時報告:
用一個復雜一點慢日志,獲得如下結果:
可以輕松定位到慢查詢的熱點時段,也便于發現業務的周期性規律。
termsql 是一個很方便的小工具:
1. 可以用于將文本導出到 SQLite 中,方便 SQL 查詢。
2. 它與 ps 或者 top 合用也有驚喜,比如找出 CPU 占用率高于 25% 的進程: