TIDB 统计信息收集的采样比例可以调整么

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.1.7
【遇到的问题:问题现象及影响】 人工触发analyze table TAB的时候能看到返回结果是auto adject 0.012%比例的行数,这个比例可以调整么?

可以人工,也可以自动,比例可以按照你自己的需求调整

但是不同的版本上,对于这块的功能的支持程度上有不一样,请按照tidb 的版本参考进行调整

参考文档
https://docs.pingcap.com/zh/tidb/stable/statistics

3 个赞

还以为是可以通过配置来实现呢,这样搞复杂了

改那多费劲的

当然可以调整,但是建议提前先了解为什么调整哪些参数,结合自己的业务情况设置最合适的值

没啥必要修改

可以修改,就是相对比较麻烦,WITH +统计信息配置项

改太麻烦

没找到需要调整的参数呢

前面的大佬提到的官网就有

ANALYZE TABLE TableNameList [WITH NUM BUCKETS|TOPN|CMSKETCH DEPTH|CMSKETCH WIDTH]|[WITH NUM SAMPLES|WITH FLOATNUM SAMPLERATE];

  • WITH NUM BUCKETS 用于指定生成直方图的桶数量上限。
  • WITH NUM TOPN 用于指定生成 TOPN 数目的上限。
  • WITH NUM CMSKETCH DEPTH 用于指定 CM Sketch 的长。
  • WITH NUM CMSKETCH WIDTH 用于指定 CM Sketch 的宽。
  • WITH NUM SAMPLES 用于指定采样的数目。
  • WITH FLOAT_NUM SAMPLERATE 用于指定采样率。

WITH NUM SAMPLESWITH FLOAT_NUM SAMPLERATE 这两种设置对应了两种不同的收集采样的算法。

  • WITH NUM SAMPLES 指定了采样集的大小,在 TiDB 中是以蓄水池采样的方式实现。当表较大时,不推荐使用这种方式收集统计信息。因为蓄水池采样中间结果集会产生一定的冗余结果,会对内存等资源造成额外的压力。
  • WITH FLOAT_NUM SAMPLERATE 是在 v5.3.0 中引入的采样方式,指定的采样率的大小,是取值范围 (0, 1] 的参数。在 TiDB 中是以伯努利采样的方式实现,更适合对较大的表进行采样,在收集效率和资源使用上更有优势。

可以调整

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