如何查看mysql存储过程执行计划?

时间:2016-05-26 10:40:47

标签: mysql sql procedure

使用JDBC Java执行存储过程,但是很慢,所以想查一下数据库存储过程的执行计划,你怎么看?有几百行SQL存储过程,数据库是Mysql,我知道检查选择语句执行计划是使用说明,但是如何存储过程?

2 个答案:

答案 0 :(得分:1)

如果您至少拥有mysql v5.6.3,则可以使用mysql optimizer tracer

基本用法:

SET optimizer_trace="enabled=on";
SELECT ...; # your query here
SELECT * FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;
# possibly more queries...
# When done with tracing, disable it:
SET optimizer_trace="enabled=off";

它可以跟踪following queries

  

选择; INSERT或REPLACE(使用VALUES或SELECT); UPDATE / DELETE及其多表变体;所有以前的以EXPLAIN为前缀的; SET(除非它操纵optimizer_trace系统变量);做; DECLARE / CASE / IF / RETURN(存储例程语言元素);呼叫。如果其中一个陈述是在不同的步骤中准备和执行的,则单独跟踪准备和执行。

答案 1 :(得分:0)

尝试在存储过程中单独使用选择等语句的解释。