db_user
(Db User)
1
Bug 反馈
清晰准确地描述您发现的问题,提供任何可能复现问题的步骤有助于研发同学及时处理问题
【 TiDB 版本】
4.0.13
【 Bug 的影响】
analyze后健康度没有变化
现象:
日志报错:
两张表的报错
[error=“[types:1406]Data Too Long, field len 40, data len 64”]
[error=“[types:1406]Data Too Long, field len 10, data len 16”]
等
触发方式:
调用analyze一次触发一次,analyze的表的字段长度有40,10
影响:
调用analyze后客户端能够正常执行,且客户端没有返回任何warning信息,但是日志中记载如上warning信息,而且analyze后健康度没有任何变化
尝试过的方法:
DROP STATS TableName;没有作用
类似的issue:
https://github.com/pingcap/tidb/issues/27024
社区类似的问题:
ps:
不是upper_bound,跟那个不是一个报错
db_user
(Db User)
2
解决了
操作步骤:
1.把自动analyze调成一个非当前时间点,保证当前不会自动analye
set global tidb_auto_analyze_start_time=‘00:00 +0000’
2.删除该表的统计信息
DROP STATS db_name.table_name
3.手动analyze 表
analyze table db_name.table_name
(此时问题解决了,查看健康度恢复到100了)
4.恢复自动analyze
set global tidb_auto_analyze_start_time=
原因:可能是统计信息不准导致的,而这不准的原因导致自动analyze一直不成功,所以需要如上操作
但根本问题还得等研发大佬看了
另外还有一个现象,我观察了好几张报警的表,现象都是一致的
Data Too Long, field len 255, data len 284
比如这个报错,是表中有一个字段的定义长度是255,这个字段的最大长度是142,所有的这种data len的报警都是字段最长长度*2
1 个赞
db_user
(Db User)
关闭
7
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。