我有一个庞大的数据集。结构看起来像这样:
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
答案 0 :(得分:5)
在前4列创建索引没有任何问题,实际上你应该:
create unique index mytable_key on mytable(K_Field1,K_Field2,K_Field3,K_Field4);
因为这是你现实的情况。
这也是“正确”的解决方案。