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
在前4列上创建索引没有错,事实上你应该:
create unique index mytable_key on mytable(K_Field1,K_Field2,K_Field3,K_Field4);
Run Code Online (Sandbox Code Playgroud)
因为那是你现实的情况.
这也是"正确"的解决方案.