# Non-Clustered Index for Primary Key - `Point_Get` Example
+ Column **`id`** is the primary key
+ **`Point_Get`** operation involves accessing two objects: the table and the primary key index


```
tidb> SHOW CREATE TABLE universe.planets;

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

tidb> EXPLAIN
  SELECT mass, gravity
  FROM universe.planets
  WHERE ~!@id = 3@!~;

+-------------+---------+------+----------------------------------+---------------+
| id          | estRows | task | access object                    | operator info |
+-------------+---------+------+----------------------------------+---------------+
| ~!@Point_Get@!~_1 | 1.00    | root | table:planets, index:PRIMARY(id) |               |
+-------------+---------+------+----------------------------------+---------------+
```
![`smart`](NonClusteredTableWithPrimaryKey_en_001_20231116.png)

------------------------------------------------------------------------------
In the execution plan presented on the slide, as indicated by the `access object` column, the `Point_Get` operator retrieves data from both the index and the table. In this particular scenario, TiDB functions not only as a relational database but also as a key-value NoSQL database. As a result, there are two RPC calls made during the `Point_Get` operation: the first one is used for accessing the index, and the second one is utilized for accessing the table.

Later in this chapter, we will delve into further details regarding the `Point_Get` during the section of `SELECT` and `INSERT/UPDATE/DELETE` processes.