EXPLAIN FORMAT=JSON
is a variant of EXPLAIN command that produces output in JSON form. The output always has one row which has only one column titled "JSON
". The contents are a JSON representation of the query plan:
EXPLAIN FORMAT=JSON SELECT * FROM t1 WHERE col1=1\G
*************************** 1. row ***************************
EXPLAIN: {
"query_block": {
"select_id": 1,
"table": {
"table_name": "t1",
"access_type": "ALL",
"rows": 1000,
"filtered": 100,
"attached_condition": "(t1.col1 = 1)"
}
}
}
The output of MariaDB's EXPLAIN FORMAT=JSON
is different from EXPLAIN FORMAT=JSON
in MySQL. The reasons for that are:
MySQL's output has deficiencies.
The output of MySQL's EXPLAIN FORMAT=JSON
is not defined. Even MySQL Workbench has trouble parsing it (see this blog post).
MariaDB has query optimizations that MySQL does not have. This means that MariaDB generates query plans that MySQL does not generate.
TODO: MariaDB's output format description.
ANALYZE FORMAT=JSON produces output like EXPLAIN FORMAT=JSON
, but amended with the data from query execution.
This page is licensed: CC BY-SA / Gnu FDL