Example 1
Inspect the plan for a filtered lookup
The command does not return user rows. It returns metadata about how the engine expects to access and filter the users table.
Engine-specific syntax
Setup
CREATE TABLE users (id INT, email VARCHAR(100), status VARCHAR(20));
INSERT INTO
users
VALUES
(1, '[email protected]', 'active'),
(2, '[email protected]', 'disabled');SQL
EXPLAIN
SELECT
id,
email
FROM
users
WHERE
status = 'active'; Engine-specific syntax
Setup
CREATE TABLE users (id INT, email VARCHAR(100), status VARCHAR(20));
INSERT INTO
users
VALUES
(1, '[email protected]', 'active'),
(2, '[email protected]', 'disabled');SQL
SET
SHOWPLAN_TEXT ON;
SELECT
id,
email
FROM
users
WHERE
status = 'active';
SET
SHOWPLAN_TEXT OFF; Engine-specific syntax
Setup
CREATE TABLE users (id INT, email TEXT, status TEXT);
INSERT INTO
users
VALUES
(1, '[email protected]', 'active'),
(2, '[email protected]', 'disabled');SQL
EXPLAIN QUERY PLAN
SELECT
id,
email
FROM
users
WHERE
status = 'active';Plan output is engine-specific and may vary by version and statistics.