TiDB 查询数据失败 Can't find a proper physical plan for this query

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

  • 【TiDB 版本】:v4.0.0-alpha-1201-g4cd837aad
  • 【问题描述】: 我从 mysql dump 出来一份数据文件导入 tidb (docker-compose 启动) 中, 查询数据时报错:ERROR 1815 (HY000): Internal : Can't find a proper physical plan for this query

表结构如下:

CREATE TABLE `uploads` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `original_filename` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `filesize` int(11) NOT NULL,
  `width` int(11) DEFAULT NULL,
  `height` int(11) DEFAULT NULL,
  `url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  `sha1` varchar(40) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `origin` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `retain_hours` int(11) DEFAULT NULL,
  `extension` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `thumbnail_width` int(11) DEFAULT NULL,
  `thumbnail_height` int(11) DEFAULT NULL,
  `etag` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `index_uploads_on_sha1` (`sha1`),
  KEY `index_uploads_on_etag` (`etag`),
  KEY `index_uploads_on_id_and_url` (`id`,`url`),
  KEY `index_uploads_on_url` (`url`),
  KEY `index_uploads_on_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

1、源数据是使用什么命令导出 mysql 以及使用什么命令导入到 tidb 中的?导入后是否出现了报错?

2、请尝试加 limit 1 查询一条语句看下结果

3、如果方便,请帮忙导出下这个表的统计信息:

http://${tidb-server-ip}:${tidb-server-status-port}/stats/dump/${db_name}/${table_name}

4、analyze table uploads 后,再执行下,看下结果

统计信息: uploads_stat (2.6 MB)
analyze table uploads:%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_515ff79f-1eba-47e8-bd11-19bee1a9c93f

再执行结果:

应该是 master 上新特性的问题,试试在 config 文件中把 enable-chunk-rpc 设置为 false 看看能否正确出结果呢

额,最后在贵司 DBA 的帮助下将 tidb 版本回退到 v3.0.7 解决了,十分感谢