[英]InnoDB foreign keys and MySQL partitioning
我使用 MySQL 服务器版本:5.7.32-0ubuntu0.16.04.1(Ubuntu)。 在我的数据库中,我有这张包含百万条记录的表:
CREATE TABLE `tableA` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`timestamp` timestamp NULL DEFAULT NULL,
`value` int(11) NOT NULL,
`tableB_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UK_sjfet8dx50bhix3ub1dwocpcx` (`timestamp`,`tableB_id`),
KEY `FK_su2f3awnwvdpq1h3x5x0drjaw` (`tableB_id`),
CONSTRAINT `FK_su2f3awnwvdpq1h3x5x0drjaw` FOREIGN KEY (`tableB_id`) REFERENCES `tableB` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
是否可以按范围使用分区(在这种情况下按年份)?
即使存在外键也可以分区吗?
谢谢!
https://dev.mysql.com/doc/refman/8.0/en/partitioning-limitations.html说:
分区 InnoDB 表不支持外键。 使用 InnoDB 存储引擎的分区表不支持外键。
无论如何,您不能按年份对该表进行分区,因为表上的每个唯一键都必须使用表分区表达式中的每一列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.