Mysql 多对多共轭表中未定义分区

Mysql 多对多共轭表中未定义分区,mysql,phpmyadmin,many-to-many,relational-database,composite-primary-key,Mysql,Phpmyadmin,Many To Many,Relational Database,Composite Primary Key,我有jobs和eqtypes之间的Many-to-Many关系,所以我制作了第三个表,名为eqtypeu-jobs。然而,在这种关系中,共轭、规范化、表I并没有生成独立的主键id。例如,我只是将job\u id和eqtype\u id都设置为主键。以下是表格结构: CREATE TABLE `eqtype_jobs` ( `job_id` int(10) UNSIGNED NOT NULL, `eqtype_id` int(4) UNSIGNED NOT NULL ) ENGINE=In

我有
jobs
eqtypes
之间的
Many-to-Many
关系,所以我制作了第三个表,名为
eqtypeu-jobs
。然而,在这种关系中,共轭、规范化、表I并没有生成独立的主键
id
。例如,我只是将
job\u id
eqtype\u id
都设置为主键。以下是表格结构:

CREATE TABLE `eqtype_jobs` (
  `job_id` int(10) UNSIGNED NOT NULL,
  `eqtype_id` int(4) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `eqtype_jobs`
--
ALTER TABLE `eqtype_jobs`
  ADD PRIMARY KEY (`eqtype_id`,`job_id`),
  ADD KEY `job_id` (`job_id`);

--
-- Constraints for dumped tables
--

--
-- Constraints for table `eqtype_jobs`
--
ALTER TABLE `eqtype_jobs`
  ADD CONSTRAINT `eqtype_jobs_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `eqtype_jobs_ibfk_2` FOREIGN KEY (`eqtype_id`) REFERENCES `eqtypes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
这是我使用独立主键
id
省略的第一个表。我以前使用过其他多对多关系,其中包含
id
。但是,当显示
eqtype_作业
表结构时,phpMyAdmin会显示以下注意事项:

CREATE TABLE `eqtype_jobs` (
  `job_id` int(10) UNSIGNED NOT NULL,
  `eqtype_id` int(4) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `eqtype_jobs`
--
ALTER TABLE `eqtype_jobs`
  ADD PRIMARY KEY (`eqtype_id`,`job_id`),
  ADD KEY `job_id` (`job_id`);

--
-- Constraints for dumped tables
--

--
-- Constraints for table `eqtype_jobs`
--
ALTER TABLE `eqtype_jobs`
  ADD CONSTRAINT `eqtype_jobs_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `jobs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `eqtype_jobs_ibfk_2` FOREIGN KEY (`eqtype_id`) REFERENCES `eqtypes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
未定义分区


是否由于缺少独立的主键(即
id
)而导致此有关分区的消息?或者表的复合主键定义不好?!这个关于部分的通知是否会对将来的性能产生负面影响

不,消息并没有说您的表结构有什么不好。从语法和UI的角度来看,使用感叹号有点奇怪,但这里没有问题

是一种划分数据在磁盘上存储方式的方法。您看到的结构页面区域处理分区(见图),当没有配置分区时,您会看到警告您的通知

如果配置了分区,您将看到以下参数:


因此,您可以安全地忽略该页面的分区部分。

如果您想尝试建议的“分区”,该怎么办。分区是否可以提高性能?你能不能用“如何添加分区”的链接更新你的答案,或者进一步阅读。Thanks@MonkeyPuzzle我认为这真的超出了这个问题的范围,更多的是属于一般的MySQL类别,所以我认为您应该打开自己关于分区的问题(如果您一旦这样做了,我很乐意看一看)。在某些情况下,可以实现性能提高,但大多数情况下,如果分区分布在多个存储设备上。在phpMyAdmin中,上面显示的“分区表”按钮可以让您开始使用该接口(然后必须选择分区标准)。《掌握phpmyadmin3.3.x以实现有效的MySQL管理》一书中有一章介绍了如何创建分区(),MySQL手册也提供了大量关于一般原则的信息。