Mám obrovský súbor údajov. Štruktúra vyzerá takto:
K_Field1, K_Field2, K_Field3, K_Field4, D_Field5, D_Field6, D_Field7, D_field8
Problém je v tom, že iba prvé 4 pole (K_Field1,K_Field2,K_Field3,K_Field4
) spoločne identifikujú riadok jedinečne. Vytvoril som jednu tabuľku a tieto polia používam ako svoje polia.
Povedzme, že v tabuľke mám 1 milión riadkovpomocou tejto štruktúry. Ak importujem nový záznam, musím sa rozhodnúť, či už je v databáze. Ak je, musím ho aktualizovať, ak nie, potom musím vložiť nový riadok.
Aby som to mohol urobiť, musím dať index viacerých polív prvých 4 stĺpcoch, čo je - obávam sa - nie je najlepším riešením. Existuje lepšia štruktúra databázy na ukladanie a vyhľadávanie v týchto údajoch, alebo musím žiť so štvormiestnym indexom?
Používam MySQL
odpovede:
5 pre odpoveď č. 1Pri vytváraní indexu v prvých 4 stĺpcoch nie je nič zlé: v skutočnosti by ste mali:
create unique index mytable_key on mytable(K_Field1,K_Field2,K_Field3,K_Field4);
pretože to je realita vašej situácie.
Je to tiež „správne“ riešenie.