未在多对多共轭中定义分区 table

No partitioning defined in Many to Many conjugation table

我在 jobseqtypes 之间有 Many to Many 关系,所以我创建了第三个 table 命名为 eqtype_jobs。但是,在这个关系的共轭、归一化、table中我并没有做一个独立的主键,比如id,我只是把job_ideqtype_id都设置为主键。以下是table结构:

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省略的第一个table。我还有其他的多对多关系,我以前在其中使用过 id 。但是,phpMyAdmin 在显示 eqtype_jobs table 结构时显示以下通知:

No partitioning defined!

由于缺少独立的主键,导致此关于分区的消息的原因,即 id?还是table的复合主键没有定义好?!这个关于部分的通知是否会对未来的性能产生负面影响?!

不,该消息并没有说您的 table 结构有任何问题。从语法和UI方面来说,感叹号有点奇怪,但是这里没有问题。

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

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

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