脏数据无法删除(急急急急急急)

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:
  • 【问题描述】:

库里面有脏数据,但是无法进行删除,执行语句select ,update,delete 都没有办法

执行语句:

DELETE FROM riot_lol_player_stat WHERE match_id=4069983699

UPDATE riot_lol_player_stat SET deleted=1 WHERE match_id=4069983699

SELECT * FROM riot_lol_player_stat WHERE match_id=4069983699

报错信息如下:

1105 - unexpected err: 8:"\b\x83\x80\xf0\x9e\xc1\xbd\xfe\xde\x05\x12%t\x80\x00\x00\x00\x00\x00\r\x82_i\x80\x00\x00\x00\x00\x00\x00\t\x03\x80\x00\x00\x00\x00\x00\r\x05\x03\x80\x00\x00\x00\x00Q\xc7X" , tid: 413761533128736771, Time: 0.019000s

脏数据是什么意思 ? 不删除对业务有什么影响 ? 什么版本的 TiDB 集群 ? 辛苦详细描述下,感谢。

猜测是脏数据,有特殊字符之类的,不删除会导致关联关系有触及到这种的数据都会报错

环境是

5.7.25-TiDB

4.0.0-alpha

升级版本是否可以解决

  1. 脏数据是什么意思 ? 是业务逻辑里面脏数据 ? 还是什么脏数据 ?
  2. 现在 4.0.0-alpha 是生产环境么 ? 生产环境不建议使用 4.0.0-alpha 版本,建议重新创建 TiDB 集群版本 v3.0.8 ,将数据导入到新集群中使用。
  3. 目前 TiDB 对特殊字符支持采用字符集 UTF8mb4 ,基本上都可以支持,不存在无法删除的问题。如果有希望可以提供准确可复现的数据和操作步骤,我们验证一下问题。

是在生产环境,现在如何降级,复现的数据无从获取,只知道库里面存在查询不了的行,或许我描述的不对,不应该叫脏数据,叫异常数据吧,字符集用的确实是UTF8mb4

  1. 目前最好办法就是通过全量方式,将数据导入到 v3.0.8 版本的 TiDB 集群。创建新的 TiDB 集群,然后数据通过 mydumper/loader 方式将数据全量导入到 v3.0.8,
  1. 如果还想在 4.0 解决问题,建议发具体的操作和报错结果,这样我们可以确认的原因。