# Displaying the Execution Plan by `EXPLAIN` Statement
+ Operator name and the step unique identifier - **`id`**
+ Estimated number of rows from the particular step - **`estRows`**
+ The executor of the step - **`task`**
+ The object where the row sources are located - **`access object`**
+ Extended information about the operator regarding the step - **`operator info`**
```
tidb> ~!@EXPLAIN@!~ SELECT count(*) FROM trips WHERE start_date BETWEEN '2017-07-01 00:00:00' AND '2017-07-01 23:59:59';
```
```6
+--------------------------+-------------+--------------+-------------------+----------------------------------------------------------------------------------------------------+
~!@| id                       | estRows     | task         | access object     | operator info                                                                                      |@!~
+--------------------------+-------------+--------------+-------------------+----------------------------------------------------------------------------------------------------+
| StreamAgg_20             | 1.00        | root         |                   | funcs:count(Column#13)->Column#11                                                                  |
| └─TableReader_21         | 1.00        | root         |                   | data:StreamAgg_9                                                                                   |
|   └─StreamAgg_9          | 1.00        | cop[tikv]    |                   | funcs:count(1)->Column#13                                                                          |
|     └─Selection_19       | 250.00      | cop[tikv]    |                   | ge(trips.start_date, 2017-07-01 00:00:00.000000), le(trips.start_date, 2017-07-01 23:59:59.000000) |
|       └─TableFullScan_18 | 10000.00    | cop[tikv]    | table:trips       | keep order:false, stats:pseudo                                                                     |
+--------------------------+-------------+--------------+-------------------+----------------------------------------------------------------------------------------------------+
5 rows in set (0.00 sec)
```
------------------------------------------------------------------------------
The query on the slide is designed to calculate the number of trips on July 1, 2017. The table is named `trips`, and within the `WHERE` clause, filtering is applied based on the `start_date`. After the `SELECT` clause, an aggregation operation counts the rows meeting the specified conditions.

By using the `EXPLAIN` command followed by the query, you can view the execution plan's operators, their push-down expressions, and the estimated number of accessed rows. It's important to note that the `EXPLAIN` command does not execute the query. Instead, it stops at generating the execution plan from the optimizer, without sending it to the SQL executor.

Let's now explore how to interpret the results of the `EXPLAIN` command. The output is a table where each row represents a step in the execution plan. For instance, in the SQL execution plan mentioned earlier, there are 5 rows, indicating the query is completed in 5 steps. The `EXPLAIN` output consists of 5 columns:

- The `id` column indicates the operation of a particular step, mainly comprising the operator's name and its unique identifier ID. Note that the execution plan is not ordered from top to bottom or bottom to top; instead, the steps form a tree-like structure. More information about execution order is available in the next slide.

- The `estRows` column provides an estimate of the number of rows the operator in this step will return, based on statistical information.

- The `task` column denotes the type of task for this step (indicating the component it runs on). `root` means this step is executed on the TiDB server. If `tikv` or `tiflash` appears in the task names, it means this step is pushed down to the `TiKV` or `TiFlash` layers for execution.

- The `access object` column indicates the object accessed by this step, such as the table or index involved.

- The `operator info` column provides detailed information about the operator used in this step.