请教一下get_snapshot_time这个字段是做什么?

【 TiDB 使用环境】生产环境
【 TiDB 版本】5.7.25-TiDB-v7.2.0
【复现路径】select * from test where id in(50个)
【遇到的问题:问题现象及影响】出现慢查询
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

id task estRows operator info actRows execution info memory disk
Batch_Point_Get_1 root 50 table:storage_file_info, handle:[2501509765 2503718177 2511719665 2512936963 2513004171 2515442703 2523228841 2524787541 2528536181 2534877482 2535348173 2536085396 2537214438 2537761415 2539206826 2539333595 2542389811 2542527166 2542972912 2544202922 2544426251 2544507355 2545727807 2545737446 2545742431 2558140493 2558253616 2559815350 2559858400 2559859440 2563131586 2563174614 2564700223 2566095559 2580150899 1290324822 1329957255 1359946139 1386655700 1447089951 1879290389 2459994201 1282324635 1289435729 1296930384 1305064084 1310341884 1328715103 1370641710 1371788336], keep order:false, desc:false 50 time:14.6s, loops:2, BatchGet:{num_rpc:42, total_time:38.8s}, total_process_time: 807ns, total_wait_time: 37.9µs, tikv_wall_time: 38.8s, scan_detail: {total_process_keys: 50, total_process_keys_size: 12898, total_keys: 50, get_snapshot_time: 37.9s, rocksdb: {block: {cache_hit_count: 466, read_count: 50, read_byte: 284.2 KB, read_time: 813.6ms}}} N/A N/A

读取对应版本快照数据的时间

https://docs.pingcap.com/zh/tidb/stable/latency-breakdown#tikv-快照

这是获取快照的延迟拆解。你可以看看grafana里面拆解出来是哪里慢了。
粗略感觉可能是读热点,看看表结构。

执行计划里面的get_snapshot_time字段,可以理解为是扫描tikv获取数据所需要的时间。在MVCC机制下,即为读取的是事务开始前的最新快照。

在TiDB的执行计划中,get_snapshot_time这个字段是用来表示查询操作是基于哪个时间点的快照来获取数据的