PARTITION_NAME为<null>

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

  • 【TiDB 版本】:v4.0.2
  • 【问题描述】:

背景
一张表A,其中一个字段类型为varchar,数据格式为(“2020-09-01 12:05:48”)

操作

  1. 用mydumper将表A备份出来;
  2. 修改备份文件中的表A-schema,将上述varchar类型的字段改为datetime类型,并且按天进行做partition,记为表B;
  3. 使用loader将备份数据导入表B;

结果

  1. 表B对应的partition中出现partition-name为null的partition
+----------------+------------+-----------------------+
| PARTITION_NAME | TABLE_ROWS | PARTITION_DESCRIPTION |
+----------------+------------+-----------------------+
| <null>         | 13080669   | <null>                |
| p0             | 12336820   | 63772790400           |
| p1             | 69685      | 63772876800           |
| p2             | 71918      | 63772963200           |
| p3             | 73150      | 63773049600           |
| p4             | 82743      | 63773136000           |
| p5             | 138204     | 63773222400           |
| p6             | 103122     | 63773308800           |
| p7             | 74997      | 63773395200           |
| p8             | 75129      | 63773481600           |
| p9             | 69376      | 63773568000           |
| p10            | 74698      | 63773654400           |
| p11            | 120263     | 63773740800           |
| p12            | 203396     | 63773827200           |
| p13            | 120164     | 63773913600           |
| p14            | 83438      | 63774000000           |
| p15            | 77956      | 63774086400           |
| p16            | 90016      | 63774172800           |
| p17            | 27078      | MAXVALUE              |
| <null>         | 7681039    | <null>                |
+----------------+------------+-----------------------+
  1. partition-name为非null的partition总行数之和比表的总行数大

问题

  1. null partition是什么数据?

  2. 为什么partition中总行数会比表中总行数大?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

null partition已确认为另外一个库里的同名表导致, 但是partition里table-rows总和仍然比table中的count(*)大

数据行数对不上是因为information_schema.PARTITIONS中的数据为统计数据并不精确,重新analyze table收集信息即可得到准备数据

:+1: