# 隠しプライマリキーの非クラスタ化インデックス-`TableFullScan` 例
+ **`id`**カラムは**_NOT_**はプライマリキーです
+ **`id`**カラムには**_NO_**というインデックスがあります
+ クエリを満たすには、**`TableFullScan`**操作が必要です

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

tidb> CREATE TABLE `planets` (
  `id` bigint(20) DEFAULT NULL,
...

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

+---------------------------+---------+-----------+---------------+-------------------------------------------+
| id                        | estRows | task      | access object | operator info                             |
+---------------------------+---------+-----------+---------------+-------------------------------------------+
| Projection_4              | 2.00    | root      |               | test1.planets.mass, test1.planets.gravity |
| └─TableReader_7           | 2.00    | root      |               | data:Selection_6                          |
|   └─Selection_6           | 2.00    | cop[tikv] |               | eq(test1.planets.id, 3)                   |
|     └─~!@TableFullScan@!~_5     | 20.00   | cop[tikv] | table:planets | keep order:false                          |
+---------------------------+---------+-----------+---------------+-------------------------------------------+
```
![`smart`](NonClusteredTableWithoutPrimaryKey_ja_001_20231116.png)
------------------------------------------------------------------------------
一般的な経験則として、`TableFullScan`はできるだけ避けるべきです。`TableFullScan`については第4章で詳しく説明します。