2011-08-05 12 views
6

Tengo un gran conjunto de datos. La estructura es como la siguiente:¿Es el índice de campo múltiple en MySQL una buena opción?

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

El problema es que sólo el primer campo 4 (K_Field1,K_Field2,K_Field3,K_Field4) junto a identificar de forma única una fila. Creé una tabla, usando estos campos como sus campos.

Digamos que tengo 1 millón de filas en la tabla con esa estructura. Si importo un nuevo registro, debo decidir si ya está en la base de datos. Si es así, entonces tengo que actualizarlo, si no, entonces tengo que insertar una nueva fila.

Para hacer eso, necesito poner un índice de campo múltiple en las primeras 4 columnas, que, me temo, no es la mejor solución. ¿Hay una mejor estructura de base de datos para almacenar y buscar en esos datos, o tengo que vivir con el índice de cuatro campos?

estoy usando MySQL

+2

¿Por qué crees que es una mala idea tener índices de varias columnas? está perfectamente sano y es tu única solución. – nobody

+0

Tenía la esperanza de poder dividir los datos de alguna manera en varias tablas, haciendo que la estructura sea más eficiente, pero parece que estaba equivocado. ¡Gracias por tu comentario! – mimrock

Respuesta

5

No hay nada malo con la creación de un índice en las 4 primeras columnas, de hecho, usted debe:

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

porque esa es la realidad de su situación.

También es la solución "correcta".

Cuestiones relacionadas