MySQL中的多字段索引是一个不错的选择吗?

时间:2011-08-05 13:49:28

标签: mysql sql database performance indexing

我有一个庞大的数据集。结构看起来像这样:

K_Field1, K_Field2, K_Field3, K_Field4, D_Field5, D_Field6, D_Field7, D_field8

问题是只有前4个字段(K_Field1,K_Field2,K_Field3,K_Field4)一起唯一地标识一行。我创建了一个表,使用这些字段作为其字段。

假设我使用该结构在表中有100万行。如果我导入一个新记录,我必须决定它是否已经在数据库中。如果是,那么我必须更新它,如果没有,那么我需要插入一个新行。

要做到这一点,我需要在前4列上放置一个多字段索引,这是 - 我担心 - 不是最好的解决方案。是否有更好的数据库结构来存储和搜索该数据,或者我必须使用四个指数?

我正在使用MySQL

1 个答案:

答案 0 :(得分:5)

在前4列创建索引没有任何问题,实际上你应该:

create unique index mytable_key on mytable(K_Field1,K_Field2,K_Field3,K_Field4);

因为这是你现实的情况。

这也是“正确”的解决方案。