0

目前我有几个pivot具有这种结构的表mysql

用户 ID | 组织ID | 类型

4   3   external
4   3   internal
6   4   internal
7   4   external
6   5   external
7   5   external
7   6   internal

如您所见,在我的type专栏中,我只使用externaland internal。当前,该type列是 aenum并已编入索引。

这是一个好的数据库结构还是我应该为该列创建一个单独的表type

我在几张桌子上遇到了这个“问题”,所以这是一个重要的决定。桌子可能会变得很大。

在这个情况下,你会怎么做?

4

1 回答 1

2

这在很大程度上取决于您要针对该表运行的查询类型。

如果您计划运行忽略列的查询type,即不关心它是内部的还是外部的,或者type在运行时决定他们想要什么的查询,例如通过用户输入,那么将所有内容保存在一个表中会有很大的优势.

通常,对选择性较差的列进行索引,即在其两个类别中的每个类别中大约有一半的行,与全表扫描相比,只能提供边际性能改进。将表一分为二也是如此:它会使查询变得更加复杂而几乎没有改进。

于 2017-07-22T09:36:36.107 回答