¿Cómo es el ÍNDICE en la clave primaria compuesta en mysql?

12

Al hacer una clave primaria compuesta para dos o más columnas, por ejemplo PRIMARY KEY(col1, col2, col3); ¿El sistema de INDEXcada columna individualmente?

La razón por la que hago esta pregunta es que, cuando la usamos UNIQUE INDEX (col1, col2, col3), actúa solo INDEXpara la primera columna y necesitamos crear correos electrónicos adicionales INDEXpara otras columnas. Quiero saber si ese es el caso de la clave primaria compuesta también.

Googlebot
fuente

Respuestas:

16
  1. El índice primario compuesto siempre garantizará que la combinación de los valores col1, col2, col3 sean únicos. Si el propósito del índice es asegurar que los valores sean únicos, entonces habrá logrado eso

  2. Un índice compuesto también proporciona coincidencias de índice en cualquier combinación de las columnas col1, col2 y col3

  3. Crearía índices separados en col2 y col3, si une o filtra usando cualquiera de las columnas sin las otras.

  4. Siempre prefiero una clave primaria numérica (sin asociación comercial) e índices únicos sobre una clave primaria compuesta cuando sea necesario.

Stephen Senkomago Musoke
fuente
1
¡Buenos puntos! entonces, la clave primaria compuesta es similar al ÍNDICE ÚNICO, y no tenemos índice para las columnas 2da, 3ra, ... ¿para obtener una fila rápidamente?
Googlebot
1
@ssmusoke ¿Puedo suponer por la omisión del col1punto 3 que a SELECT * WHERE col1 = 10sería eficiente?
Andy
2
@Andy # 3 se suma a un índice compuesto de col1, col2 y col3, por lo que se utilizará el índice compuesto. Sin embargo, si realiza filtros en col2 y col3 sin col1, entonces necesita índices separados para cada uno de ellos solo
Stephen Senkomago Musoke
3
Tener un índice en col1, col2 y col3 significa que SELECT * FROM col1 = 10 será eficiente, ya que col1 es la primera columna en el índice, por lo que # 3 le permite hacer lo mismo para col2 y col3, de modo que si usted filtra por esas columnas solo sin col1, luego las columnas también se indexan
Stephen Senkomago Musoke
2
@PaulWasilewski sí, de hecho, hay casos especiales en los que una clave primaria compuesta tiene sentido, pero esos son solo casos especiales.
Stephen Senkomago Musoke