使用索引或用代理项 ID 替换值并添加单独的表?



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

user_id | organisation_id | 类型

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

如您所见,在我的type专栏中,我只使用externalinternal。目前,type列是enum并已编制索引。

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

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

在这种情况下你会怎么做?

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

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

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

相关内容

  • 没有找到相关文章

最新更新