Come si trova INDEX sulla chiave primaria composita in mysql?


12

Quando si crea una chiave primaria composita per due o più colonne, ad esempio PRIMARY KEY(col1, col2, col3); il sistema INDEXciascuna colonna individualmente?

Il motivo per cui sto ponendo questa domanda è che quando usiamo UNIQUE INDEX (col1, col2, col3), si comporta solo come INDEXper la prima colonna e dobbiamo creare ulteriori INDEXs per altre colonne. Voglio sapere se è il caso anche della chiave primaria composita.

Risposte:


16
  1. L'indice primario composito assicurerà sempre che la combinazione dei valori col1, col2, col3 sia unica. Se lo scopo dell'indice è garantire che i valori siano univoci, lo avrai raggiunto

  2. Un indice composito fornisce anche corrispondenze di indice su qualsiasi combinazione delle colonne col1, col2 e col3

  3. Dovresti creare indici separati su col2 e col3, se ti unisci o filtri utilizzando una delle colonne senza le altre.

  4. Preferisco sempre una chiave primaria numerica (senza associazione di imprese) e, se necessario, indici univoci su una chiave primaria composita.


1
punti buoni! quindi, la chiave primaria composita è simile a UNIQUE INDEX e non abbiamo un indice per le colonne 2nd, 3rd, ... per recuperare rapidamente una riga?
Googlebot

1
@ssmusoke Posso dedurre dall'omissione di cui col1al punto 3 che a SELECT * WHERE col1 = 10sarebbe efficace?
Andy,

2
@Andy # 3 si aggiunge a un indice composito di col1, col2 e col3, pertanto verrà utilizzato l'indice composito. Tuttavia, se esegui filtri su col2 e col3 senza col1, hai bisogno di indici separati per ciascuno di essi da solo
Stephen Senkomago Musoke,

3
Avere un indice su col1, col2 e col3 significa che SELECT * FROM col1 = 10 sarà efficiente, poiché col1 è la prima colonna dell'indice, quindi # 3 ti consente di fare lo stesso per col2 e col3, quindi se filtra solo per quelle colonne senza col1, quindi anche le colonne vengono indicizzate
Stephen Senkomago Musoke,

2
@PaulWasilewski sì, in effetti ci sono casi speciali in cui una chiave primaria composita ha senso, ma questi sono solo casi speciali.
Stephen Senkomago Musoke
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.