TableRangeScan是走的主键查询吗

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】

  • TableFullScan:全表扫描。
  • TableRangeScan:带有范围的表数据扫描。
  • TableRowIDScan:根据上层传递下来的 RowID 扫描表数据。时常在索引读操作后检索符合条件的行。
  • IndexFullScan:另一种“全表扫描”,扫的是索引数据,不是表数据。
  • IndexRangeScan:带有范围的索引数据扫描操作。

在mysql中用主键查询一部分数据:
±—±------------±---------------±------±--------------±--------±--------±-----±-----±------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
±—±------------±---------------±------±--------------±--------±--------±-----±-----±------------+
| 1 | SIMPLE | test| range | PRIMARY | PRIMARY | 292 | NULL | 192 | Using where |
±—±------------±---------------±------±--------------±--------±--------±-----±-----±------------+

TableRangeScan是tidb特有的吗,走TableRangeScan的时候会用到主键吗?要是用到的话是不是也可以叫"primary indexrangescan"
【资源配置】
【附件:截图/日志/监控】

是特有的 默认情况下聚簇表就是按主键排序了

特有地。会用到。超外号呗。。。

tidb底层是keyvalue结构,如果是聚簇索引表的话,表的key就是table_id+主键id,这样按主键查询的话,单个值就走点查,tidb叫Point_Get,多个值就走TableRangeScan,不需要再走索引后回表了,直接生成key,去tikv将对应的value拿回来,就是需要的数据了。

TableRangeScan操作通常用于主键范围查询。tidb中,主键是用于唯一标识每个数据记录的关键字。TableRangeScan操作允许您在特定的主键范围内检索数据记录,这通常用于执行范围查询、分页查询或其他需要基于主键顺序的查询。

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。