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