主动获取

  • agent监控
    • 使用字节码注入获取执行的sql(这个具有一定的滞后性,不能实时的获取正在执行的,只能获取以前执行过的)
  • show processlist
    • 主动获取链接数和当前正在执行的sql(这个可能获取的链接数比较多且当前处理sleep的比较多)
  • 查询information_schema
    • SELECT * from information_schema.PROCESSLIST where command!=’sleep’ ORDER BY time desc 实时获取执行的非sleep的sql

被动获取

  • arthas
    • 使用arthas对执行对对下进行监控(需要控制好),如果执行对sql特别多,那么可能会错过我们需要的那条
  • mybatis
    • 使用mybatis的插件来进行监控,因为mysql的toString对象可以直接获取执行的sql,会方便一点,但是sql server就不行