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

mim*_*ock 6 mysql sql database indexing performance

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

K_Field1, K_Field2, K_Field3, K_Field4, D_Field5, D_Field6, D_Field7, D_field8
Run Code Online (Sandbox Code Playgroud)

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

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

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

我正在使用MySQL

Boh*_*ian 5

在前4列上创建索引没有错,事实上你应该:

create unique index mytable_key on mytable(K_Field1,K_Field2,K_Field3,K_Field4);
Run Code Online (Sandbox Code Playgroud)

因为那是你现实的情况.

这也是"正确"的解决方案.