explain命令语法:
EXPLAIN [ ( 选项 [, ...] ) ] 语句
EXPLAIN [ ANALYZE ] [ VERBOSE ] 语句
选项可以是下列内容之一:
ANALYZE [ 布尔 ]
VERBOSE [ 布尔 ]
COSTS [ 布尔 ]
BUFFERS [ 布尔 ]
TIMING [ 布尔 ]
FORMAT { TEXT | XML | JSON | YAML }
ANALYZE选项通过实际执行的SQL获取相应的执行计划,可以看到执行计划每一步实际花费的时间及实际返回的行数。
使用analyze选项分析DML或DDL语句时,因为会真正执行实际的SQL,会修数据库结构。为了不影响实际的数据,可以把EXPLAIN ANALYZE放到事务中,执行完成后再回滚,语法如下:
begin;
explain analyze …;
rollback;
verbose用于显示执行计划的附加信息。附加信息包括:sql输出的列、触发器名称等信息。该选项默认关闭。
costs选项显示启动成本和总成本,估计行数和每行宽度。该选项默认开启。
buffers选项显示缓冲区的使用信息。该参数只能与analyze参数一起使用。该选项默认关闭。
format选项指定输出格式,输出格式:TEXT、XML、JSON、YAML。默认格式TEXT。