关于统计信息以及执行计划

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

统计信息是不是只影响执行计划的索引, 以及join顺序。如果说走的索引 以及join顺序方式
,正确,统计信息的是不是不会影响最终的执行时间?

一个SQL语句通常在物理优化阶段,根据统计信息(表行数、列情况、索引信息等)进行执行计划的优化,所以,最终的执行计划是受统计信息影响的。而且一个计划准不准,是系统根据当前已有信息(包括统计信息)来判断决定的,会自动调整为它认为最优的解,即使最终运行出来的效果不是最佳。

是的,用错误的统计信息生成的执行计划如果和用正确的统计信息生成的一样,那最终执行的效果一样的

统计信息用于在生成物理执行计划时作为成本的参照,但它不能决定执行时间,执行时间是实际花费CPU、发生IO、网络通信等的时间

我觉得你的理解是对的。没必要非得要求表健康度是100%

统计信息只是生成执行计划时的参考因素,生成执行计划之后的执行速度,统计信息影响不到。

统计信息的作用是让数据库系统更加准确的知道数据的分布及数量。以便生成更加准确的执行计划。

如果 不考虑执行计划,统计信息不影响最终执行时间

执行计划是根据统计信息做的,错的统计信息可能产生错的执行计划,导致查询性能大降