Como está o INDEX na chave primária composta no mysql?

12

Ao criar uma chave primária composta para duas ou mais colunas, por exemplo PRIMARY KEY(col1, col2, col3); será o sistema INDEXcada coluna individualmente?

A razão pela qual estou fazendo essa pergunta é que, quando a usamos UNIQUE INDEX (col1, col2, col3), ela age como INDEXsomente na primeira coluna e precisamos criar INDEXs adicionais para outras colunas. Quero saber se esse também é o caso da chave primária composta.

Googlebot
fonte

Respostas:

16
  1. O índice primário composto sempre garantirá que a combinação dos valores de col1, col2, col3 seja única. Se o objetivo do índice é garantir que os valores sejam únicos, você terá alcançado esse

  2. Um índice composto também fornece correspondências de índice em qualquer combinação das colunas col1, col2 e col3

  3. Você criaria índices separados em col2 e col3, se ingressar ou filtrar usando qualquer uma das colunas sem as outras.

  4. Eu sempre prefiro uma chave primária numérica (sem associação comercial) e índices exclusivos sobre uma chave primária composta, quando necessário.

Stephen Senkomago Musoke
fonte
11
bons pontos! então, a chave primária composta é semelhante a UNIQUE INDEX, e não temos índice para a segunda, terceira, ... colunas para buscar rapidamente uma linha?
Googlebot
11
@ssmusoke Posso assumir pela omissão do col1ponto 3 que a SELECT * WHERE col1 = 10seria eficiente?
Andy
2
@ Andy # 3 é um índice composto de col1, col2 e col3, para que o índice composto seja usado. No entanto, se você fizer filtros em col2, e col3 sem col1, então você precisa separar índices para cada um deles sozinho
Stephen Senkomago Musoke
3
Ter um índice em col1, col2 e col3 significa que SELECT * FROM col1 = 10 será eficiente, uma vez que col1 é a primeira coluna do índice, portanto, o nº 3 permite que você faça o mesmo para col2 e col3, portanto, se você filtrar apenas por essas colunas sem col1, as colunas também serão indexadas #
Stephen Senkomago Musoke
2
@PaulWasilewski sim, de fato, existem casos especiais em que uma chave primária composta faz sentido, mas esses são apenas casos especiais.
Stephen Senkomago Musoke 04/04