统计信息修改咨询

【 TiDB 使用环境】
版本:4.0.15

【概述】 场景 + 问题概述
1 WITH NUM TOPN, WITH NUM CMSKETCH DEPTH, WITH NUM CMSKETCH WIDTH 的默认值如何查看?
2 WITH NUM TOPN, WITH NUM CMSKETCH DEPTH, WITH NUM CMSKETCH WIDTH 的最大值和最小值是多少
3 WITH NUM TOPN, WITH NUM CMSKETCH DEPTH, WITH NUM CMSKETCH WIDTH 值设定后,是永久固定的,还是存储在内存内 重启后恢复默认?
4 Count-Min Sketch 模式下 是否桶数量越多,查询越快?

  1. 可以在代码中查看信息 https://github.com/pingcap/tidb
  2. 可以在测试环境测试一下,会有提示。
    MySQL [test]> analyze table test with 0 buckets;
    ERROR 1105 (HY000): value of analyze option BUCKETS should be positive and not larger than 1024
    MySQL [test]> analyze table test with 0 CMSKETCH DEPTH;
    ERROR 1105 (HY000): value of analyze option CMSKETCH DEPTH should be positive and not larger than 1258291
    MySQL [test]> analyze table test with 0 CMSKETCH WIDTH;
    ERROR 1105 (HY000): value of analyze option CMSKETCH WIDTH should be positive and not larger than 1258291
  3. 请问修改这个的目的是什么? 您这边具体遇到了什么问题,或者说是有类似的开发问题?多谢。

explain时, 预估值比实际值大很多的情况,看文档后相同修改上述参数使预估值变得精确

  1. explain 不准后,重新收集统计信息还是不准吗?
  2. 麻烦具体的例子发一下,收集统计信息后,explain 和 实际数据相差的情况,多谢。

同一张表 2个集群下的explain 结果
测试:


生产:

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