数据归档出现 ERROR 1815 (HY000): Internal : Can't find a proper physical plan for this query

【 TiDB 使用环境】生产环境
【 TiDB 版本】V4.0.15
【复现路径】
1、添加

Create Table: CREATE TABLE `my_table` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `post_id` varchar(32) NOT NULL DEFAULT '' COMMENT '订单ID',
  `create_sys_tm` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
   PRIMARY KEY (`id`),
   KEY `idx_create_sys_tm` (`create_sys_tm`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=1 COMMENT='订单表'

添加副本

 ALTER TABLE my_db.my_table SET TIFLASH REPLICA 1;

将整个库导到另外一个没有tiflash的库,执行SQL语句

explain SELECT /*!40001 SQL_NO_CACHE */  *  FROM `my_db`.`my_table` FORCE INDEX(`PRIMARY`) WHERE (create_sys_tm<'2021-09-01 00:00:00') ORDER BY `id` LIMIT 10000;    
···


【遇到的问题:问题现象及影响】

会直接报错

ERROR 1815 (HY000): Internal : Can’t find a proper physical plan for this query

清理掉就能正常。

ALTER TABLE my_db.my_table SET TIFLASH REPLICA 0;

额,你没有tiflash的集群,给表增加tiflash副本,执行计划走到了tiflash肯定报错了呀,set global tidb_allow_fallback_to_tikv =‘tiflash’;设置下这个环境变量,不让执行计划走到tiflash吧。。。

导数过去的时候,新集群没有,就是因为知道没有tiflash所以导致问题,所以才排查问题。

将整个库导到另外一个没有tiflash的库

您是用什么方式导整个库?

BR导入导出整个库

  1. 导出时br用的哪个版本?
  2. 能复现吗?
  3. 导入完成后做过analyze吗?如果没有,做完后还会报这种错吗?

时间有点久了,忘记了大概是BR导数据,但是当时analyze有问题。统计了下数据一致就没继续往下了。现在归档使用工具的时候发现这个问题。

跟analyze本身应该没关系。因为这个是业务表。都是分析过的。

您可以参考下这个:

1 个赞

如果当时你备份了统计信息过去,之后有没有完成analyze,可能还会按之前的统计信息生成执行计划,就会导致你碰到的问题

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