tidbv5.3.1执行analyze报错other error: encoding failed

Bug 反馈
清晰准确地描述您发现的问题,提供任何可能复现问题的步骤有助于研发同学及时处理问题
【 TiDB 版本】
Server version: 5.7.25-TiDB-v5.3.1

【 Bug 的影响】
执行analyze报错other error: encoding failed

【可能的问题复现步骤】
该表有约16亿行,一直有数据持续写入。
表的字符集是latin1:
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_bin

该集群:
mysql> show variables like ‘tidb_skip_utf8_check’ ; ±---------------------±------+
| Variable_name | Value |
±---------------------±------+
| tidb_skip_utf8_check | ON |
±---------------------±------+
1 row in set (0.02 sec)

mysql> show variables like ‘tidb_analyze_version’ ;
±---------------------±------+
| Variable_name | Value |
±---------------------±------+
| tidb_analyze_version | 2 |
±---------------------±------+
1 row in set (0.03 sec)

【看到的非预期行为】
analyze报错:ERROR 1105 (HY000): other error: encoding failed
mysql> analyze table MP.pay ;
ERROR 1105 (HY000): other error: encoding failed
mysql>

【期望看到的行为】
执行analyze成功,并正确更新统计信息,使得SQL用到正确索引

【相关组件及具体版本】
v5.3.1

【其他背景信息或者截图】
1.业务方发现SQL变慢,上线查看是索引使用不准确,想analyze 更新统计信息时发现该异常。
2.此问题与 https://github.com/pingcap/tidb/issues/18680 类似,不确定是否真的有关联。

请问能否提供下错误的相关日志,包括 tidb 和 tikv 侧的

另外new_collation开启的情况

SELECT * FROM mysql.tidb WHERE VARIABLE_NAME='new_collation_enabled';

建表的语句也提供下吧

mysql> SELECT * FROM mysql.tidb WHERE VARIABLE_NAME=‘new_collation_enabled’;
±----------------------±---------------±---------------------------------------------------+
| VARIABLE_NAME | VARIABLE_VALUE | COMMENT |
±----------------------±---------------±---------------------------------------------------+
| new_collation_enabled | False | If the new collations are enabled. Do not edit it. |
±----------------------±---------------±---------------------------------------------------+
1 row in set (0.01 sec)

大概率是写入的数据有乱码,

我们采用的解决办法:重建utf8mb4表,统一字符集编码,重导数据

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