查看慢SQL语句慢在哪里

若是咱们频繁地在慢查询日志中发现某个语句执行缓慢,且在表 结构、索引结构、统计信息中都没法找出缘由时,则能够利用sys系 统库中的撒手锏:sys.session视图结合performance_schema的等待事件 来找出症结所在。那么session视图有什么用呢?使用它能够查看当前 用户会话的进程列表信息,数据来源于sys.processlist视图(使用该视 图能够查询全部前台和后台线程的状态信息,默认按照进程等待时间 和最近一条语句执行完成的时间降序排列。数据来源: performance_schema的threads、events_waitscurrent、events statements_current、events_stages_current、events_transactions_current、 session_connect_attrs等表和sys.x$memory_by_thread_by_current_bytes视 图),查询结果字段与processlist视图相似,但session视图过滤掉了 后台线程,只显示与前台(用户)线程相关的统计数据。该视图在 MySQL5.7.9中是新增的。 下面是使用session视图查询的结果集。
操做步骤:
(1)开启须要启用与等待事件相关的instruments、consumers
call sys.ps_setup_enable_instrument('wait')
call sys.ps_setup_enable_consumer('wait')
(2)查询session
select * from session where command='query' and conn_id!=connection_id();session