【 TiDB 使用环境`】生产环境
【 TiDB 版本】 v5.3.0
【 背景 】 基于DM同步MYSQL数据到新搭建的TIDB集群,某些查询选择的索引异常,进一步发现虽然TIDB有执行过analyze语句,但是表的健康度等信息不变
【附件】
【 TiDB 使用环境`】生产环境
【 TiDB 版本】 v5.3.0
【 背景 】 基于DM同步MYSQL数据到新搭建的TIDB集群,某些查询选择的索引异常,进一步发现虽然TIDB有执行过analyze语句,但是表的健康度等信息不变
【附件】
1) dm同步现在是增量阶段还是全量阶段?
2) show stats_meta like ''overseaim_sku; 看看输出是什么?
看下tidb.log里 analyze有报错没
tidb是部署在k8s中的,暂时没有收集日志…
上面的截图应该是analyze完成的语句吧
tidb_auto_analyze_ratio
时触发 analyze
语句, from → https://docs.pingcap.com/zh/tidb/stable/sql-faq#在-tidb-中-auto-analyze-的触发策略是怎样的有 2 点猜测,1. analyze 正常 ,但 analyze 速度追不上 update 速度,2. analyze SQL 执行失败,一直没更新 healthy。但从 healthy 看只有 1 ,更接近第二种猜测。
另外建议,开启收集日志,没有日志排查问题全靠猜。
是的,查看日志发现有报错信息,这样是需要调长gc时间吗 ?
GC life time is shorter than transaction duration, transaction starts at XXXXX.
另外,我注意到普通的长事务似乎PD会自动调整以维护start_ts之后的数据,analyze是因为内部SQL的原因不考虑这样做吗
看你的是 v5.3.0 + 生产环境,如果为了analyze执行完,可以选个业务低峰期把 GC 调大,待收集完后再改回去。
同时注意适当调整 tidb_gc_max_wait_time kill analyze SQL 。
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。