mysql5.7的sys系統庫應用示例
阿新 • • 發佈:2020-09-15
1.檢視慢SQL語句慢在哪裡
如果我們頻繁地在慢查詢日誌中發現某個語句執行緩慢,且在表結構、索引結構、統計資訊中都無法找出原因時,則可以利用sys系統庫中的撒手鐗:sys.session檢視結合performance_schema的等待事件來找出癥結所在。那麼session檢視有什麼用呢?使用它可以檢視當前使用者會話的程序列表資訊,資料來源於sys.processlist檢視(使用該檢視可以查詢所有前臺和後臺執行緒的狀態資訊,預設按照程序等待時間和最近一條語句執行完成的時間降序排列。資料來源:
performance_schema的threads、events_waits_current、events_statements_current、events_stages_current、events_transactions_current、session_connect_attrs等表 和sys.x$memory_by_thread_by_current_bytes檢視)
查詢結果欄位與processlist檢視類似,但session檢視過濾掉了後臺執行緒,只顯示與前臺(使用者)執行緒相關的統計資料。該檢視在MySQL 5.7.9中是新增的。
下面是使用session檢視查詢的結果集。
#首先需要啟用與等待事件相關的instruments和consumers,否則last_wait欄位值可能為null mysql> call sys.ps_setup_enable_instrument('wait'); +-------------------------+ | summary | +-------------------------+ | Enabled 315instruments | +-------------------------+ 1 row in set (0.01 sec) Query OK, 0 rows affected (0.01 sec) mysql> mysql> call sys.ps_setup_enable_consumer('wait'); +---------------------+ | summary | +---------------------+ | Enabled 3 consumers | +---------------------+ 1 row in set (0.00sec) Query OK, 0 rows affected (0.00 sec) mysql>
11