# Clustered Primary Key - Primary Key Access Path - `TableRangeScan`
+ `TableRangeScan` refers to a table that is accessed as an index, it is generally efficient 

```
SHOW CREATE TABLE universe.planets;

CREATE TABLE `planets` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  ...
  PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */,
  ...

EXPLAIN
SELECT mass, gravity
FROM universe.planets
WHERE id BETWEEN 3 AND 8;

+--------------------------+---------+-----------+---------------+-------------------------------------------------+
| id                       | estRows | task      | access object | operator info                                   |
+--------------------------+---------+-----------+---------------+-------------------------------------------------+
| Projection_4             | 12.00   | root      |               | universe.planets.mass, universe.planets.gravity |
| └─~!@TableReader@!~_6          | 12.00   | root      |               | data:TableRangeScan_5                           |
|   └─~!@TableRangeScan@!~_5     | 12.00   | cop[tikv] | table:planets | range:[3,8], keep order:false                   |
+--------------------------+---------+-----------+---------------+-------------------------------------------------+
```

------------------------------------------------------------------------------
In the execution plan displayed on the slide, the `TableRangeScan` operator is responsible for executing on TiKV servers. It seeks rows based on the range of primary key values and subsequently returns these rows to the TiDB server as the input for the operator `TableReader`.  

We will discuss more about `TableRangeScan` in chapter 4.
