分区字段必须是主键吗?

【TiDB 使用环境】生产环境 /测试/ Poc
【TiDB 版本】
【操作系统】
【部署方式】云上部署(什么云)/机器部署(什么机器配置、什么硬盘)
【集群数据量】
【集群节点数】
【问题复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】
数据表从oracle迁移,以前没有主键,现在要有, 数据量很大,所以加了分区.但是分区必须是主键吗?

看看主键是什么类型字段,分区用什么方式

分区表的每个唯一键、或主键,必须包含分区表达式中用到的所有列

如果表里面有主键、或唯一键,那分区键必须是主键、唯一键的一部分。

https://docs.pingcap.com/zh/tidb/stable/partitioned-table/#分区键主键和唯一键

分区字段需要是主键和唯一键得一部分

分区字段必须是表主键或唯一键的一部分

必须是主键

分区表的每个唯一键,必须包含分区表达式中用到的所有列

在 TiDB 中,分区键不一定必须是主键 ,但有一些约束需要注意,尤其是从 Oracle 迁移过来的大表场景,需要结合主键设计和分区策略综合考虑

TiDB 中分区键不必是主键,但主键必须包含所有分区键。迁移时需结合业务设计主键(如 “自增 ID + 分区键”),既满足分区需求,又保证数据唯一性,同时避免大表操作的性能问题

主键或者联合主键的一部分