你这两个问题,都比较复杂。
首先执行计划有缓存。
https://docs.pingcap.com/zh/tidb/stable/sql-prepared-plan-cache#prepare-语句执行计划缓存
https://docs.pingcap.com/zh/tidb/stable/sql-non-prepared-plan-cache
命中这个缓存可以跳过生成执行计划这一步。
然后tidb有缓存
https://docs.pingcap.com/zh/tidb/stable/coprocessor-cache
上面说的coprocessor-cache就是这一类。
最后tikv也有缓存,
rocksdb有block-cache
https://docs.pingcap.com/zh/tidb/stable/manage-cluster-faq#tikv-block-cache-有哪些特性
走不走索引涉及到代价评估。每种情况都不太一样。大致可以参考下面这个帖子。